home *** CD-ROM | disk | FTP | other *** search
/ Delphi Informant Complete 1995 - 2000 / Delphi Informant Complete 1995 to 2000.iso / Delphi Informant Magazine Complete Works SOURCE CODE 1998.rar / 1998 / Jul / DI9807AM / Tapi.pas next >
Pascal/Delphi Source File  |  1996-12-28  |  147KB  |  4,001 lines

  1. { Translated 25/11/96 by Alexander Staubo <alex@image.no>
  2.  
  3.   Translator's Notes:
  4.   -------------------
  5.   - Version define TAPI_CURRENT_VERSION has been converted to a constant
  6.     and conditional code depending on this value changed to the conditional
  7.     define "Tapi_Ver20".
  8.  
  9.   - Type aliases for UNICODE omitted.
  10.  
  11.   - Output pointer arguments such as LPDWORD have not been converted to
  12.     "var" parameters. It would require looking up every TAPI function in the
  13.     SDK help files and verifying each parameter, since a nil value may be
  14.     passed for some of these parameters. Anyone interested?
  15.  
  16.   - The TapiCheck() function does not, for some reason, produce a valid error
  17.     message. Until this is fixed, access the error codes (LINEERR_, PHONEERR_
  18.     etc.) directly.
  19.  
  20.   - The TapiError() function assumes that TAPI error codes are always negative;
  21.     I am not sure if this rule is consistently implemented throughout TAPI,
  22.     although I think is.
  23.  
  24.   - Constructs and text introduced by translator is prefixed with the
  25.     characters "!!".
  26.  
  27.   - Original time stamp of tapi.h: 09-aug-96 00:30
  28.  
  29.  
  30.   Revision History
  31.   ----------------
  32.     25/11/96 -AS  Initial translation.
  33. }
  34.  
  35. {!! The following define enables support for TAPI 2.0 }
  36. {$DEFINE Tapi_Ver20}
  37.  
  38. unit Tapi;
  39.  
  40. (*++ BUILD Version: 0000    // Increment this if a change has global effects
  41.  
  42. The  Telephony  API  is jointly copyrighted by Intel and Microsoft.  You are
  43. granted  a royalty free worldwide, unlimited license to make copies, and use
  44. the   API/SPI  for  making  applications/drivers  that  interface  with  the
  45. specification provided that this paragraph and the Intel/Microsoft copyright
  46. statement is maintained as is in the text and source code files.
  47.  
  48. Copyright 1995-96 Microsoft, all rights reserved.
  49. Portions copyright 1992, 1993 Intel/Microsoft, all rights reserved.
  50.  
  51. Module Name:
  52.  
  53.     tapi.h
  54.  
  55. Notes:
  56.  
  57.     Additions to the Telephony Application Programming Interface (TAPI) since
  58.     version 1.0 are noted by version number (e.g. "TAPI v1.4").
  59.  
  60. --*)
  61.  
  62. interface
  63.  
  64. uses
  65.   Windows, Messages;
  66.  
  67. //
  68. //  -- TAPI VERSION INFO -- TAPI VERSION INFO -- TAPI VERSION INFO --
  69. //  -- TAPI VERSION INFO -- TAPI VERSION INFO -- TAPI VERSION INFO --
  70. //  -- TAPI VERSION INFO -- TAPI VERSION INFO -- TAPI VERSION INFO --
  71. //
  72. // To build  a TAPI 1.4 application put a define as below in your source
  73. // file before you include TAPI.H:
  74. //
  75. // #define TAPI_CURRENT_VERSION $00010004
  76. //
  77. //
  78.  
  79. const
  80.   TAPI_CURRENT_VERSION = $00020000;
  81.  
  82. {$ALIGN OFF}       //!! Added; all records implicitly declared as "packed"
  83.  
  84. {!! The above line should correspond to:
  85.  
  86. #pragma pack(1)
  87. // Type definitions of the data types used in tapi
  88.  
  89. }
  90.  
  91. type
  92.   {!! C compatibility types, added }
  93.   INT = Longint;
  94.   LONG = Longint;
  95.   LPVOID = Pointer;
  96.   HINSTANCE = THandle;
  97.   {!!}
  98.  
  99. //
  100. // TAPI type definitions
  101. //
  102.  
  103. type
  104.   HCALL__ =
  105.     record
  106.       unused : INT;
  107.     end;
  108.   HCALL = HCALL__;
  109.   LPHCALL = ^HCALL;
  110.  
  111.   HLINE__ =
  112.     record
  113.       unused : INT;
  114.     end;
  115.   HLINE = HLINE__;
  116.   LPHLINE = ^HLINE;
  117.  
  118.   HPHONE__ =
  119.     record
  120.       unused : INT;
  121.     end;
  122.   HPHONE = HPHONE__;
  123.   LPHPHONE = ^HPHONE;
  124.  
  125.   HLINEAPP__ =
  126.     record
  127.       unused : INT;
  128.     end;
  129.   HLINEAPP = HLINEAPP__;
  130.   LPHLINEAPP = ^HLINEAPP;
  131.  
  132.   HPHONEAPP__ =
  133.     record
  134.       unused : INT;
  135.     end;
  136.   HPHONEAPP = HPHONEAPP__;
  137.   LPHPHONEAPP = ^HPHONEAPP;
  138.  
  139.   LPHICON = ^HICON;
  140.  
  141.   TLINECALLBACK = procedure (hDevice,
  142.                              dwMessage,
  143.                              dwInstance,
  144.                              dwParam1,
  145.                              dwParam2,
  146.                              dwParam3 : DWORD); stdcall;
  147.  
  148.   TPHONECALLBACK = procedure (hDevice,
  149.                               dwMessage,
  150.                               dwInstance,
  151.                               dwParam1,
  152.                               dwParam2,
  153.                               dwParam3 : DWORD); stdcall;
  154.  
  155.  
  156. // Messages for Phones and Lines
  157.  
  158. const
  159.   LINE_ADDRESSSTATE                       = 0;
  160.   LINE_CALLINFO                           = 1;
  161.   LINE_CALLSTATE                          = 2;
  162.   LINE_CLOSE                              = 3;
  163.   LINE_DEVSPECIFIC                        = 4;
  164.   LINE_DEVSPECIFICFEATURE                 = 5;
  165.   LINE_GATHERDIGITS                       = 6;
  166.   LINE_GENERATE                           = 7;
  167.   LINE_LINEDEVSTATE                       = 8;
  168.   LINE_MONITORDIGITS                      = 9;
  169.   LINE_MONITORMEDIA                       = 10;
  170.   LINE_MONITORTONE                        = 11;
  171.   LINE_REPLY                              = 12;
  172.   LINE_REQUEST                            = 13;
  173.   PHONE_BUTTON                            = 14;
  174.   PHONE_CLOSE                             = 15;
  175.   PHONE_DEVSPECIFIC                       = 16;
  176.   PHONE_REPLY                             = 17;
  177.   PHONE_STATE                             = 18;
  178.   LINE_CREATE                             = 19;             // TAPI v1.4
  179.   PHONE_CREATE                            = 20;             // TAPI v1.4
  180.  
  181. {$IFDEF Tapi_Ver20}
  182.   LINE_AGENTSPECIFIC                      = 21;            // TAPI v2.0
  183.   LINE_AGENTSTATUS                        = 22;            // TAPI v2.0
  184.   LINE_APPNEWCALL                         = 23;            // TAPI v2.0
  185.   LINE_PROXYREQUEST                       = 24;            // TAPI v2.0
  186.   LINE_REMOVE                             = 25;            // TAPI v2.0
  187.   PHONE_REMOVE                            = 26;            // TAPI v2.0
  188. {$ENDIF}
  189.  
  190.  
  191.   INITIALIZE_NEGOTIATION                  = $FFFFFFFF;
  192.  
  193.   LINEADDRCAPFLAGS_FWDNUMRINGS            = $00000001;
  194.   LINEADDRCAPFLAGS_PICKUPGROUPID          = $00000002;
  195.   LINEADDRCAPFLAGS_SECURE                 = $00000004;
  196.   LINEADDRCAPFLAGS_BLOCKIDDEFAULT         = $00000008;
  197.   LINEADDRCAPFLAGS_BLOCKIDOVERRIDE        = $00000010;
  198.   LINEADDRCAPFLAGS_DIALED                 = $00000020;
  199.   LINEADDRCAPFLAGS_ORIGOFFHOOK            = $00000040;
  200.   LINEADDRCAPFLAGS_DESTOFFHOOK            = $00000080;
  201.   LINEADDRCAPFLAGS_FWDCONSULT             = $00000100;
  202.   LINEADDRCAPFLAGS_SETUPCONFNULL          = $00000200;
  203.   LINEADDRCAPFLAGS_AUTORECONNECT          = $00000400;
  204.   LINEADDRCAPFLAGS_COMPLETIONID           = $00000800;
  205.   LINEADDRCAPFLAGS_TRANSFERHELD           = $00001000;
  206.   LINEADDRCAPFLAGS_TRANSFERMAKE           = $00002000;
  207.   LINEADDRCAPFLAGS_CONFERENCEHELD         = $00004000;
  208.   LINEADDRCAPFLAGS_CONFERENCEMAKE         = $00008000;
  209.   LINEADDRCAPFLAGS_PARTIALDIAL            = $00010000;
  210.   LINEADDRCAPFLAGS_FWDSTATUSVALID         = $00020000;
  211.   LINEADDRCAPFLAGS_FWDINTEXTADDR          = $00040000;
  212.   LINEADDRCAPFLAGS_FWDBUSYNAADDR          = $00080000;
  213.   LINEADDRCAPFLAGS_ACCEPTTOALERT          = $00100000;
  214.   LINEADDRCAPFLAGS_CONFDROP               = $00200000;
  215.   LINEADDRCAPFLAGS_PICKUPCALLWAIT         = $00400000;
  216. {$IFDEF Tapi_Ver20}
  217.   LINEADDRCAPFLAGS_PREDICTIVEDIALER       = $00800000;      // TAPI v2.0
  218.   LINEADDRCAPFLAGS_QUEUE                  = $01000000;      // TAPI v2.0
  219.   LINEADDRCAPFLAGS_ROUTEPOINT             = $02000000;      // TAPI v2.0
  220.   LINEADDRCAPFLAGS_HOLDMAKESNEW           = $04000000;      // TAPI v2.0
  221.   LINEADDRCAPFLAGS_NOINTERNALCALLS        = $08000000;      // TAPI v2.0
  222.   LINEADDRCAPFLAGS_NOEXTERNALCALLS        = $10000000;      // TAPI v2.0
  223.   LINEADDRCAPFLAGS_SETCALLINGID           = $20000000;      // TAPI v2.0
  224. {$ENDIF}
  225.  
  226.   LINEADDRESSMODE_ADDRESSID               = $00000001;
  227.   LINEADDRESSMODE_DIALABLEADDR            = $00000002;
  228.  
  229.   LINEADDRESSSHARING_PRIVATE              = $00000001;
  230.   LINEADDRESSSHARING_BRIDGEDEXCL          = $00000002;
  231.   LINEADDRESSSHARING_BRIDGEDNEW           = $00000004;
  232.   LINEADDRESSSHARING_BRIDGEDSHARED        = $00000008;
  233.   LINEADDRESSSHARING_MONITORED            = $00000010;
  234.  
  235.   LINEADDRESSSTATE_OTHER                  = $00000001;
  236.   LINEADDRESSSTATE_DEVSPECIFIC            = $00000002;
  237.   LINEADDRESSSTATE_INUSEZERO              = $00000004;
  238.   LINEADDRESSSTATE_INUSEONE               = $00000008;
  239.   LINEADDRESSSTATE_INUSEMANY              = $00000010;
  240.   LINEADDRESSSTATE_NUMCALLS               = $00000020;
  241.   LINEADDRESSSTATE_FORWARD                = $00000040;
  242.   LINEADDRESSSTATE_TERMINALS              = $00000080;
  243.   LINEADDRESSSTATE_CAPSCHANGE             = $00000100;      // TAPI v1.4
  244.  
  245.   LINEADDRFEATURE_FORWARD                 = $00000001;
  246.   LINEADDRFEATURE_MAKECALL                = $00000002;
  247.   LINEADDRFEATURE_PICKUP                  = $00000004;
  248.   LINEADDRFEATURE_SETMEDIACONTROL         = $00000008;
  249.   LINEADDRFEATURE_SETTERMINAL             = $00000010;
  250.   LINEADDRFEATURE_SETUPCONF               = $00000020;
  251.   LINEADDRFEATURE_UNCOMPLETECALL          = $00000040;
  252.   LINEADDRFEATURE_UNPARK                  = $00000080;
  253. {$IFDEF Tapi_Ver20}
  254.   LINEADDRFEATURE_PICKUPHELD              = $00000100;      // TAPI v2.0
  255.   LINEADDRFEATURE_PICKUPGROUP             = $00000200;      // TAPI v2.0
  256.   LINEADDRFEATURE_PICKUPDIRECT            = $00000400;      // TAPI v2.0
  257.   LINEADDRFEATURE_PICKUPWAITING           = $00000800;      // TAPI v2.0
  258.   LINEADDRFEATURE_FORWARDFWD              = $00001000;      // TAPI v2.0
  259.   LINEADDRFEATURE_FORWARDDND              = $00002000;      // TAPI v2.0
  260. {$ENDIF}
  261.  
  262. {$IFDEF Tapi_Ver20}
  263.   LINEAGENTFEATURE_SETAGENTGROUP          = $00000001;      // TAPI v2.0
  264.   LINEAGENTFEATURE_SETAGENTSTATE          = $00000002;      // TAPI v2.0
  265.   LINEAGENTFEATURE_SETAGENTACTIVITY       = $00000004;      // TAPI v2.0
  266.   LINEAGENTFEATURE_AGENTSPECIFIC          = $00000008;      // TAPI v2.0
  267.   LINEAGENTFEATURE_GETAGENTACTIVITYLIST   = $00000010;      // TAPI v2.0
  268.   LINEAGENTFEATURE_GETAGENTGROUP          = $00000020;      // TAPI v2.0
  269.  
  270.   LINEAGENTSTATE_LOGGEDOFF                = $00000001;      // TAPI v2.0
  271.   LINEAGENTSTATE_NOTREADY                 = $00000002;      // TAPI v2.0
  272.   LINEAGENTSTATE_READY                    = $00000004;      // TAPI v2.0
  273.   LINEAGENTSTATE_BUSYACD                  = $00000008;      // TAPI v2.0
  274.   LINEAGENTSTATE_BUSYINCOMING             = $00000010;      // TAPI v2.0
  275.   LINEAGENTSTATE_BUSYOUTBOUND             = $00000020;      // TAPI v2.0
  276.   LINEAGENTSTATE_BUSYOTHER                = $00000040;      // TAPI v2.0
  277.   LINEAGENTSTATE_WORKINGAFTERCALL         = $00000080;      // TAPI v2.0
  278.   LINEAGENTSTATE_UNKNOWN                  = $00000100;      // TAPI v2.0
  279.   LINEAGENTSTATE_UNAVAIL                  = $00000200;      // TAPI v2.0
  280.  
  281.   LINEAGENTSTATUS_GROUP                   = $00000001;      // TAPI v2.0
  282.   LINEAGENTSTATUS_STATE                   = $00000002;      // TAPI v2.0
  283.   LINEAGENTSTATUS_NEXTSTATE               = $00000004;      // TAPI v2.0
  284.   LINEAGENTSTATUS_ACTIVITY                = $00000008;      // TAPI v2.0
  285.   LINEAGENTSTATUS_ACTIVITYLIST            = $00000010;      // TAPI v2.0
  286.   LINEAGENTSTATUS_GROUPLIST               = $00000020;      // TAPI v2.0
  287.   LINEAGENTSTATUS_CAPSCHANGE              = $00000040;      // TAPI v2.0
  288.   LINEAGENTSTATUS_VALIDSTATES             = $00000080;      // TAPI v2.0
  289.   LINEAGENTSTATUS_VALIDNEXTSTATES         = $00000100;      // TAPI v2.0
  290. {$ENDIF}
  291.  
  292.  
  293.   LINEANSWERMODE_NONE                     = $00000001;
  294.   LINEANSWERMODE_DROP                     = $00000002;
  295.   LINEANSWERMODE_HOLD                     = $00000004;
  296.  
  297.   LINEBEARERMODE_VOICE                    = $00000001;
  298.   LINEBEARERMODE_SPEECH                   = $00000002;
  299.   LINEBEARERMODE_MULTIUSE                 = $00000004;
  300.   LINEBEARERMODE_DATA                     = $00000008;
  301.   LINEBEARERMODE_ALTSPEECHDATA            = $00000010;
  302.   LINEBEARERMODE_NONCALLSIGNALING         = $00000020;
  303.   LINEBEARERMODE_PASSTHROUGH              = $00000040;      // TAPI v1.4
  304. {$IFDEF Tapi_Ver20}
  305.   LINEBEARERMODE_RESTRICTEDDATA           = $00000080;      // TAPI v2.0
  306. {$ENDIF}
  307.  
  308.   LINEBUSYMODE_STATION                    = $00000001;
  309.   LINEBUSYMODE_TRUNK                      = $00000002;
  310.   LINEBUSYMODE_UNKNOWN                    = $00000004;
  311.   LINEBUSYMODE_UNAVAIL                    = $00000008;
  312.  
  313.   LINECALLCOMPLCOND_BUSY                  = $00000001;
  314.   LINECALLCOMPLCOND_NOANSWER              = $00000002;
  315.  
  316.   LINECALLCOMPLMODE_CAMPON                = $00000001;
  317.   LINECALLCOMPLMODE_CALLBACK              = $00000002;
  318.   LINECALLCOMPLMODE_INTRUDE               = $00000004;
  319.   LINECALLCOMPLMODE_MESSAGE               = $00000008;
  320.  
  321.   LINECALLFEATURE_ACCEPT                  = $00000001;
  322.   LINECALLFEATURE_ADDTOCONF               = $00000002;
  323.   LINECALLFEATURE_ANSWER                  = $00000004;
  324.   LINECALLFEATURE_BLINDTRANSFER           = $00000008;
  325.   LINECALLFEATURE_COMPLETECALL            = $00000010;
  326.   LINECALLFEATURE_COMPLETETRANSF          = $00000020;
  327.   LINECALLFEATURE_DIAL                    = $00000040;
  328.   LINECALLFEATURE_DROP                    = $00000080;
  329.   LINECALLFEATURE_GATHERDIGITS            = $00000100;
  330.   LINECALLFEATURE_GENERATEDIGITS          = $00000200;
  331.   LINECALLFEATURE_GENERATETONE            = $00000400;
  332.   LINECALLFEATURE_HOLD                    = $00000800;
  333.   LINECALLFEATURE_MONITORDIGITS           = $00001000;
  334.   LINECALLFEATURE_MONITORMEDIA            = $00002000;
  335.   LINECALLFEATURE_MONITORTONES            = $00004000;
  336.   LINECALLFEATURE_PARK                    = $00008000;
  337.   LINECALLFEATURE_PREPAREADDCONF          = $00010000;
  338.   LINECALLFEATURE_REDIRECT                = $00020000;
  339.   LINECALLFEATURE_REMOVEFROMCONF          = $00040000;
  340.   LINECALLFEATURE_SECURECALL              = $00080000;
  341.   LINECALLFEATURE_SENDUSERUSER            = $00100000;
  342.   LINECALLFEATURE_SETCALLPARAMS           = $00200000;
  343.   LINECALLFEATURE_SETMEDIACONTROL         = $00400000;
  344.   LINECALLFEATURE_SETTERMINAL             = $00800000;
  345.   LINECALLFEATURE_SETUPCONF               = $01000000;
  346.   LINECALLFEATURE_SETUPTRANSFER           = $02000000;
  347.   LINECALLFEATURE_SWAPHOLD                = $04000000;
  348.   LINECALLFEATURE_UNHOLD                  = $08000000;
  349.   LINECALLFEATURE_RELEASEUSERUSERINFO     = $10000000;      // TAPI v1.4
  350. {$IFDEF Tapi_Ver20}
  351.   LINECALLFEATURE_SETTREATMENT            = $20000000;      // TAPI v2.0
  352.   LINECALLFEATURE_SETQOS                  = $40000000;      // TAPI v2.0
  353.   LINECALLFEATURE_SETCALLDATA             = $80000000;      // TAPI v2.0
  354. {$ENDIF}
  355.  
  356. {$IFDEF Tapi_Ver20}
  357.   LINECALLFEATURE2_NOHOLDCONFERENCE       = $00000001;      // TAPI v2.0
  358.   LINECALLFEATURE2_ONESTEPTRANSFER        = $00000002;      // TAPI v2.0
  359.   LINECALLFEATURE2_COMPLCAMPON            = $00000004;      // TAPI v2.0
  360.   LINECALLFEATURE2_COMPLCALLBACK          = $00000008;      // TAPI v2.0
  361.   LINECALLFEATURE2_COMPLINTRUDE           = $00000010;      // TAPI v2.0
  362.   LINECALLFEATURE2_COMPLMESSAGE           = $00000020;      // TAPI v2.0
  363.   LINECALLFEATURE2_TRANSFERNORM           = $00000040;      // TAPI v2.0
  364.   LINECALLFEATURE2_TRANSFERCONF           = $00000080;      // TAPI v2.0
  365.   LINECALLFEATURE2_PARKDIRECT             = $00000100;      // TAPI v2.0
  366.   LINECALLFEATURE2_PARKNONDIRECT          = $00000200;      // TAPI v2.0
  367. {$ENDIF}
  368.  
  369.   LINECALLINFOSTATE_OTHER                 = $00000001;
  370.   LINECALLINFOSTATE_DEVSPECIFIC           = $00000002;
  371.   LINECALLINFOSTATE_BEARERMODE            = $00000004;
  372.   LINECALLINFOSTATE_RATE                  = $00000008;
  373.   LINECALLINFOSTATE_MEDIAMODE             = $00000010;
  374.   LINECALLINFOSTATE_APPSPECIFIC           = $00000020;
  375.   LINECALLINFOSTATE_CALLID                = $00000040;
  376.   LINECALLINFOSTATE_RELATEDCALLID         = $00000080;
  377.   LINECALLINFOSTATE_ORIGIN                = $00000100;
  378.   LINECALLINFOSTATE_REASON                = $00000200;
  379.   LINECALLINFOSTATE_COMPLETIONID          = $00000400;
  380.   LINECALLINFOSTATE_NUMOWNERINCR          = $00000800;
  381.   LINECALLINFOSTATE_NUMOWNERDECR          = $00001000;
  382.   LINECALLINFOSTATE_NUMMONITORS           = $00002000;
  383.   LINECALLINFOSTATE_TRUNK                 = $00004000;
  384.   LINECALLINFOSTATE_CALLERID              = $00008000;
  385.   LINECALLINFOSTATE_CALLEDID              = $00010000;
  386.   LINECALLINFOSTATE_CONNECTEDID           = $00020000;
  387.   LINECALLINFOSTATE_REDIRECTIONID         = $00040000;
  388.   LINECALLINFOSTATE_REDIRECTINGID         = $00080000;
  389.   LINECALLINFOSTATE_DISPLAY               = $00100000;
  390.   LINECALLINFOSTATE_USERUSERINFO          = $00200000;
  391.   LINECALLINFOSTATE_HIGHLEVELCOMP         = $00400000;
  392.   LINECALLINFOSTATE_LOWLEVELCOMP          = $00800000;
  393.   LINECALLINFOSTATE_CHARGINGINFO          = $01000000;
  394.   LINECALLINFOSTATE_TERMINAL              = $02000000;
  395.   LINECALLINFOSTATE_DIALPARAMS            = $04000000;
  396.   LINECALLINFOSTATE_MONITORMODES          = $08000000;
  397. {$IFDEF Tapi_Ver20}
  398.   LINECALLINFOSTATE_TREATMENT             = $10000000;      // TAPI v2.0
  399.   LINECALLINFOSTATE_QOS                   = $20000000;      // TAPI v2.0
  400.   LINECALLINFOSTATE_CALLDATA              = $40000000;      // TAPI v2.0
  401. {$ENDIF}
  402.  
  403.   LINECALLORIGIN_OUTBOUND                 = $00000001;
  404.   LINECALLORIGIN_INTERNAL                 = $00000002;
  405.   LINECALLORIGIN_EXTERNAL                 = $00000004;
  406.   LINECALLORIGIN_UNKNOWN                  = $00000010;
  407.   LINECALLORIGIN_UNAVAIL                  = $00000020;
  408.   LINECALLORIGIN_CONFERENCE               = $00000040;
  409.   LINECALLORIGIN_INBOUND                  = $00000080;      // TAPI v1.4
  410.  
  411.   LINECALLPARAMFLAGS_SECURE               = $00000001;
  412.   LINECALLPARAMFLAGS_IDLE                 = $00000002;
  413.   LINECALLPARAMFLAGS_BLOCKID              = $00000004;
  414.   LINECALLPARAMFLAGS_ORIGOFFHOOK          = $00000008;
  415.   LINECALLPARAMFLAGS_DESTOFFHOOK          = $00000010;
  416. {$IFDEF Tapi_Ver20}
  417.   LINECALLPARAMFLAGS_NOHOLDCONFERENCE     = $00000020;      // TAPI v2.0
  418.   LINECALLPARAMFLAGS_PREDICTIVEDIAL       = $00000040;      // TAPI v2.0
  419.   LINECALLPARAMFLAGS_ONESTEPTRANSFER      = $00000080;      // TAPI v2.0
  420. {$ENDIF}
  421.  
  422.   LINECALLPARTYID_BLOCKED                 = $00000001;
  423.   LINECALLPARTYID_OUTOFAREA               = $00000002;
  424.   LINECALLPARTYID_NAME                    = $00000004;
  425.   LINECALLPARTYID_ADDRESS                 = $00000008;
  426.   LINECALLPARTYID_PARTIAL                 = $00000010;
  427.   LINECALLPARTYID_UNKNOWN                 = $00000020;
  428.   LINECALLPARTYID_UNAVAIL                 = $00000040;
  429.  
  430.   LINECALLPRIVILEGE_NONE                  = $00000001;
  431.   LINECALLPRIVILEGE_MONITOR               = $00000002;
  432.   LINECALLPRIVILEGE_OWNER                 = $00000004;
  433.  
  434.   LINECALLREASON_DIRECT                   = $00000001;
  435.   LINECALLREASON_FWDBUSY                  = $00000002;
  436.   LINECALLREASON_FWDNOANSWER              = $00000004;
  437.   LINECALLREASON_FWDUNCOND                = $00000008;
  438.   LINECALLREASON_PICKUP                   = $00000010;
  439.   LINECALLREASON_UNPARK                   = $00000020;
  440.   LINECALLREASON_REDIRECT                 = $00000040;
  441.   LINECALLREASON_CALLCOMPLETION           = $00000080;
  442.   LINECALLREASON_TRANSFER                 = $00000100;
  443.   LINECALLREASON_REMINDER                 = $00000200;
  444.   LINECALLREASON_UNKNOWN                  = $00000400;
  445.   LINECALLREASON_UNAVAIL                  = $00000800;
  446.   LINECALLREASON_INTRUDE                  = $00001000;      // TAPI v1.4
  447.   LINECALLREASON_PARKED                   = $00002000;      // TAPI v1.4
  448. {$IFDEF Tapi_Ver20}
  449.   LINECALLREASON_CAMPEDON                 = $00004000;      // TAPI v2.0
  450.   LINECALLREASON_ROUTEREQUEST             = $00008000;      // TAPI v2.0
  451. {$ENDIF}
  452.  
  453.   LINECALLSELECT_LINE                     = $00000001;
  454.   LINECALLSELECT_ADDRESS                  = $00000002;
  455.   LINECALLSELECT_CALL                     = $00000004;
  456.  
  457.   LINECALLSTATE_IDLE                      = $00000001;
  458.   LINECALLSTATE_OFFERING                  = $00000002;
  459.   LINECALLSTATE_ACCEPTED                  = $00000004;
  460.   LINECALLSTATE_DIALTONE                  = $00000008;
  461.   LINECALLSTATE_DIALING                   = $00000010;
  462.   LINECALLSTATE_RINGBACK                  = $00000020;
  463.   LINECALLSTATE_BUSY                      = $00000040;
  464.   LINECALLSTATE_SPECIALINFO               = $00000080;
  465.   LINECALLSTATE_CONNECTED                 = $00000100;
  466.   LINECALLSTATE_PROCEEDING                = $00000200;
  467.   LINECALLSTATE_ONHOLD                    = $00000400;
  468.   LINECALLSTATE_CONFERENCED               = $00000800;
  469.   LINECALLSTATE_ONHOLDPENDCONF            = $00001000;
  470.   LINECALLSTATE_ONHOLDPENDTRANSFER        = $00002000;
  471.   LINECALLSTATE_DISCONNECTED              = $00004000;
  472.   LINECALLSTATE_UNKNOWN                   = $00008000;
  473.  
  474. {$IFDEF Tapi_Ver20}
  475.   LINECALLTREATMENT_SILENCE               = $00000001;      // TAPI v2.0
  476.   LINECALLTREATMENT_RINGBACK              = $00000002;      // TAPI v2.0
  477.   LINECALLTREATMENT_BUSY                  = $00000003;      // TAPI v2.0
  478.   LINECALLTREATMENT_MUSIC                 = $00000004;      // TAPI v2.0
  479. {$ENDIF}
  480.  
  481.   LINECARDOPTION_PREDEFINED               = $00000001;      // TAPI v1.4
  482.   LINECARDOPTION_HIDDEN                   = $00000002;      // TAPI v1.4
  483.  
  484.   LINECONNECTEDMODE_ACTIVE                = $00000001;      // TAPI v1.4
  485.   LINECONNECTEDMODE_INACTIVE              = $00000002;      // TAPI v1.4
  486. {$IFDEF Tapi_Ver20}
  487.   LINECONNECTEDMODE_ACTIVEHELD            = $00000004;      // TAPI v2.0
  488.   LINECONNECTEDMODE_INACTIVEHELD          = $00000008;      // TAPI v2.0
  489.   LINECONNECTEDMODE_CONFIRMED             = $00000010;      // TAPI v2.0
  490. {$ENDIF}
  491.  
  492.   LINEDEVCAPFLAGS_CROSSADDRCONF           = $00000001;
  493.   LINEDEVCAPFLAGS_HIGHLEVCOMP             = $00000002;
  494.   LINEDEVCAPFLAGS_LOWLEVCOMP              = $00000004;
  495.   LINEDEVCAPFLAGS_MEDIACONTROL            = $00000008;
  496.   LINEDEVCAPFLAGS_MULTIPLEADDR            = $00000010;
  497.   LINEDEVCAPFLAGS_CLOSEDROP               = $00000020;
  498.   LINEDEVCAPFLAGS_DIALBILLING             = $00000040;
  499.   LINEDEVCAPFLAGS_DIALQUIET               = $00000080;
  500.   LINEDEVCAPFLAGS_DIALDIALTONE            = $00000100;
  501.  
  502.   LINEDEVSTATE_OTHER                      = $00000001;
  503.   LINEDEVSTATE_RINGING                    = $00000002;
  504.   LINEDEVSTATE_CONNECTED                  = $00000004;
  505.   LINEDEVSTATE_DISCONNECTED               = $00000008;
  506.   LINEDEVSTATE_MSGWAITON                  = $00000010;
  507.   LINEDEVSTATE_MSGWAITOFF                 = $00000020;
  508.   LINEDEVSTATE_INSERVICE                  = $00000040;
  509.   LINEDEVSTATE_OUTOFSERVICE               = $00000080;
  510.   LINEDEVSTATE_MAINTENANCE                = $00000100;
  511.   LINEDEVSTATE_OPEN                       = $00000200;
  512.   LINEDEVSTATE_CLOSE                      = $00000400;
  513.   LINEDEVSTATE_NUMCALLS                   = $00000800;
  514.   LINEDEVSTATE_NUMCOMPLETIONS             = $00001000;
  515.   LINEDEVSTATE_TERMINALS                  = $00002000;
  516.   LINEDEVSTATE_ROAMMODE                   = $00004000;
  517.   LINEDEVSTATE_BATTERY                    = $00008000;
  518.   LINEDEVSTATE_SIGNAL                     = $00010000;
  519.   LINEDEVSTATE_DEVSPECIFIC                = $00020000;
  520.   LINEDEVSTATE_REINIT                     = $00040000;
  521.   LINEDEVSTATE_LOCK                       = $00080000;
  522.   LINEDEVSTATE_CAPSCHANGE                 = $00100000;      // TAPI v1.4
  523.   LINEDEVSTATE_CONFIGCHANGE               = $00200000;      // TAPI v1.4
  524.   LINEDEVSTATE_TRANSLATECHANGE            = $00400000;      // TAPI v1.4
  525.   LINEDEVSTATE_COMPLCANCEL                = $00800000;      // TAPI v1.4
  526.   LINEDEVSTATE_REMOVED                    = $01000000;      // TAPI v1.4
  527.  
  528.   LINEDEVSTATUSFLAGS_CONNECTED            = $00000001;
  529.   LINEDEVSTATUSFLAGS_MSGWAIT              = $00000002;
  530.   LINEDEVSTATUSFLAGS_INSERVICE            = $00000004;
  531.   LINEDEVSTATUSFLAGS_LOCKED               = $00000008;
  532.  
  533.   LINEDIALTONEMODE_NORMAL                 = $00000001;
  534.   LINEDIALTONEMODE_SPECIAL                = $00000002;
  535.   LINEDIALTONEMODE_INTERNAL               = $00000004;
  536.   LINEDIALTONEMODE_EXTERNAL               = $00000008;
  537.   LINEDIALTONEMODE_UNKNOWN                = $00000010;
  538.   LINEDIALTONEMODE_UNAVAIL                = $00000020;
  539.  
  540.   LINEDIGITMODE_PULSE                     = $00000001;
  541.   LINEDIGITMODE_DTMF                      = $00000002;
  542.   LINEDIGITMODE_DTMFEND                   = $00000004;
  543.  
  544.   LINEDISCONNECTMODE_NORMAL               = $00000001;
  545.   LINEDISCONNECTMODE_UNKNOWN              = $00000002;
  546.   LINEDISCONNECTMODE_REJECT               = $00000004;
  547.   LINEDISCONNECTMODE_PICKUP               = $00000008;
  548.   LINEDISCONNECTMODE_FORWARDED            = $00000010;
  549.   LINEDISCONNECTMODE_BUSY                 = $00000020;
  550.   LINEDISCONNECTMODE_NOANSWER             = $00000040;
  551.   LINEDISCONNECTMODE_BADADDRESS           = $00000080;
  552.   LINEDISCONNECTMODE_UNREACHABLE          = $00000100;
  553.   LINEDISCONNECTMODE_CONGESTION           = $00000200;
  554.   LINEDISCONNECTMODE_INCOMPATIBLE         = $00000400;
  555.   LINEDISCONNECTMODE_UNAVAIL              = $00000800;
  556.   LINEDISCONNECTMODE_NODIALTONE           = $00001000;      // TAPI v1.4
  557. {$IFDEF Tapi_Ver20}
  558.   LINEDISCONNECTMODE_NUMBERCHANGED        = $00002000;      // TAPI v2.0
  559.   LINEDISCONNECTMODE_OUTOFORDER           = $00004000;      // TAPI v2.0
  560.   LINEDISCONNECTMODE_TEMPFAILURE          = $00008000;      // TAPI v2.0
  561.   LINEDISCONNECTMODE_QOSUNAVAIL           = $00010000;      // TAPI v2.0
  562.   LINEDISCONNECTMODE_BLOCKED              = $00020000;      // TAPI v2.0
  563.   LINEDISCONNECTMODE_DONOTDISTURB         = $00040000;      // TAPI v2.0
  564.   LINEDISCONNECTMODE_CANCELLED            = $00080000;      // TAPI v2.0
  565. {$ENDIF}
  566.  
  567.   LINEERR_ALLOCATED                       = $80000001;
  568.   LINEERR_BADDEVICEID                     = $80000002;
  569.   LINEERR_BEARERMODEUNAVAIL               = $80000003;
  570.   LINEERR_CALLUNAVAIL                     = $80000005;
  571.   LINEERR_COMPLETIONOVERRUN               = $80000006;
  572.   LINEERR_CONFERENCEFULL                  = $80000007;
  573.   LINEERR_DIALBILLING                     = $80000008;
  574.   LINEERR_DIALDIALTONE                    = $80000009;
  575.   LINEERR_DIALPROMPT                      = $8000000A;
  576.   LINEERR_DIALQUIET                       = $8000000B;
  577.   LINEERR_INCOMPATIBLEAPIVERSION          = $8000000C;
  578.   LINEERR_INCOMPATIBLEEXTVERSION          = $8000000D;
  579.   LINEERR_INIFILECORRUPT                  = $8000000E;
  580.   LINEERR_INUSE                           = $8000000F;
  581.   LINEERR_INVALADDRESS                    = $80000010;
  582.   LINEERR_INVALADDRESSID                  = $80000011;
  583.   LINEERR_INVALADDRESSMODE                = $80000012;
  584.   LINEERR_INVALADDRESSSTATE               = $80000013;
  585.   LINEERR_INVALAPPHANDLE                  = $80000014;
  586.   LINEERR_INVALAPPNAME                    = $80000015;
  587.   LINEERR_INVALBEARERMODE                 = $80000016;
  588.   LINEERR_INVALCALLCOMPLMODE              = $80000017;
  589.   LINEERR_INVALCALLHANDLE                 = $80000018;
  590.   LINEERR_INVALCALLPARAMS                 = $80000019;
  591.   LINEERR_INVALCALLPRIVILEGE              = $8000001A;
  592.   LINEERR_INVALCALLSELECT                 = $8000001B;
  593.   LINEERR_INVALCALLSTATE                  = $8000001C;
  594.   LINEERR_INVALCALLSTATELIST              = $8000001D;
  595.   LINEERR_INVALCARD                       = $8000001E;
  596.   LINEERR_INVALCOMPLETIONID               = $8000001F;
  597.   LINEERR_INVALCONFCALLHANDLE             = $80000020;
  598.   LINEERR_INVALCONSULTCALLHANDLE          = $80000021;
  599.   LINEERR_INVALCOUNTRYCODE                = $80000022;
  600.   LINEERR_INVALDEVICECLASS                = $80000023;
  601.   LINEERR_INVALDEVICEHANDLE               = $80000024;
  602.   LINEERR_INVALDIALPARAMS                 = $80000025;
  603.   LINEERR_INVALDIGITLIST                  = $80000026;
  604.   LINEERR_INVALDIGITMODE                  = $80000027;
  605.   LINEERR_INVALDIGITS                     = $80000028;
  606.   LINEERR_INVALEXTVERSION                 = $80000029;
  607.   LINEERR_INVALGROUPID                    = $8000002A;
  608.   LINEERR_INVALLINEHANDLE                 = $8000002B;
  609.   LINEERR_INVALLINESTATE                  = $8000002C;
  610.   LINEERR_INVALLOCATION                   = $8000002D;
  611.   LINEERR_INVALMEDIALIST                  = $8000002E;
  612.   LINEERR_INVALMEDIAMODE                  = $8000002F;
  613.   LINEERR_INVALMESSAGEID                  = $80000030;
  614.   LINEERR_INVALPARAM                      = $80000032;
  615.   LINEERR_INVALPARKID                     = $80000033;
  616.   LINEERR_INVALPARKMODE                   = $80000034;
  617.   LINEERR_INVALPOINTER                    = $80000035;
  618.   LINEERR_INVALPRIVSELECT                 = $80000036;
  619.   LINEERR_INVALRATE                       = $80000037;
  620.   LINEERR_INVALREQUESTMODE                = $80000038;
  621.   LINEERR_INVALTERMINALID                 = $80000039;
  622.   LINEERR_INVALTERMINALMODE               = $8000003A;
  623.   LINEERR_INVALTIMEOUT                    = $8000003B;
  624.   LINEERR_INVALTONE                       = $8000003C;
  625.   LINEERR_INVALTONELIST                   = $8000003D;
  626.   LINEERR_INVALTONEMODE                   = $8000003E;
  627.   LINEERR_INVALTRANSFERMODE               = $8000003F;
  628.   LINEERR_LINEMAPPERFAILED                = $80000040;
  629.   LINEERR_NOCONFERENCE                    = $80000041;
  630.   LINEERR_NODEVICE                        = $80000042;
  631.   LINEERR_NODRIVER                        = $80000043;
  632.   LINEERR_NOMEM                           = $80000044;
  633.   LINEERR_NOREQUEST                       = $80000045;
  634.   LINEERR_NOTOWNER                        = $80000046;
  635.   LINEERR_NOTREGISTERED                   = $80000047;
  636.   LINEERR_OPERATIONFAILED                 = $80000048;
  637.   LINEERR_OPERATIONUNAVAIL                = $80000049;
  638.   LINEERR_RATEUNAVAIL                     = $8000004A;
  639.   LINEERR_RESOURCEUNAVAIL                 = $8000004B;
  640.   LINEERR_REQUESTOVERRUN                  = $8000004C;
  641.   LINEERR_STRUCTURETOOSMALL               = $8000004D;
  642.   LINEERR_TARGETNOTFOUND                  = $8000004E;
  643.   LINEERR_TARGETSELF                      = $8000004F;
  644.   LINEERR_UNINITIALIZED                   = $80000050;
  645.   LINEERR_USERUSERINFOTOOBIG              = $80000051;
  646.   LINEERR_REINIT                          = $80000052;
  647.   LINEERR_ADDRESSBLOCKED                  = $80000053;
  648.   LINEERR_BILLINGREJECTED                 = $80000054;
  649.   LINEERR_INVALFEATURE                    = $80000055;
  650.   LINEERR_NOMULTIPLEINSTANCE              = $80000056;
  651. {$IFDEF Tapi_Ver20}
  652.   LINEERR_INVALAGENTID                    = $80000057;      // TAPI v2.0
  653.   LINEERR_INVALAGENTGROUP                 = $80000058;      // TAPI v2.0
  654.   LINEERR_INVALPASSWORD                   = $80000059;      // TAPI v2.0
  655.   LINEERR_INVALAGENTSTATE                 = $8000005A;      // TAPI v2.0
  656.   LINEERR_INVALAGENTACTIVITY              = $8000005B;      // TAPI v2.0
  657.   LINEERR_DIALVOICEDETECT                 = $8000005C;      // TAPI v2.0
  658. {$ENDIF}
  659.  
  660.   LINEFEATURE_DEVSPECIFIC                 = $00000001;
  661.   LINEFEATURE_DEVSPECIFICFEAT             = $00000002;
  662.   LINEFEATURE_FORWARD                     = $00000004;
  663.   LINEFEATURE_MAKECALL                    = $00000008;
  664.   LINEFEATURE_SETMEDIACONTROL             = $00000010;
  665.   LINEFEATURE_SETTERMINAL                 = $00000020;
  666. {$IFDEF Tapi_Ver20}
  667.   LINEFEATURE_SETDEVSTATUS                = $00000040;      // TAPI v2.0
  668.   LINEFEATURE_FORWARDFWD                  = $00000080;      // TAPI v2.0
  669.   LINEFEATURE_FORWARDDND                  = $00000100;      // TAPI v2.0
  670. {$ENDIF}
  671.  
  672.   LINEFORWARDMODE_UNCOND                  = $00000001;
  673.   LINEFORWARDMODE_UNCONDINTERNAL          = $00000002;
  674.   LINEFORWARDMODE_UNCONDEXTERNAL          = $00000004;
  675.   LINEFORWARDMODE_UNCONDSPECIFIC          = $00000008;
  676.   LINEFORWARDMODE_BUSY                    = $00000010;
  677.   LINEFORWARDMODE_BUSYINTERNAL            = $00000020;
  678.   LINEFORWARDMODE_BUSYEXTERNAL            = $00000040;
  679.   LINEFORWARDMODE_BUSYSPECIFIC            = $00000080;
  680.   LINEFORWARDMODE_NOANSW                  = $00000100;
  681.   LINEFORWARDMODE_NOANSWINTERNAL          = $00000200;
  682.   LINEFORWARDMODE_NOANSWEXTERNAL          = $00000400;
  683.   LINEFORWARDMODE_NOANSWSPECIFIC          = $00000800;
  684.   LINEFORWARDMODE_BUSYNA                  = $00001000;
  685.   LINEFORWARDMODE_BUSYNAINTERNAL          = $00002000;
  686.   LINEFORWARDMODE_BUSYNAEXTERNAL          = $00004000;
  687.   LINEFORWARDMODE_BUSYNASPECIFIC          = $00008000;
  688.   LINEFORWARDMODE_UNKNOWN                 = $00010000;      // TAPI v1.4
  689.   LINEFORWARDMODE_UNAVAIL                 = $00020000;      // TAPI v1.4
  690.  
  691.   LINEGATHERTERM_BUFFERFULL               = $00000001;
  692.   LINEGATHERTERM_TERMDIGIT                = $00000002;
  693.   LINEGATHERTERM_FIRSTTIMEOUT             = $00000004;
  694.   LINEGATHERTERM_INTERTIMEOUT             = $00000008;
  695.   LINEGATHERTERM_CANCEL                   = $00000010;
  696.  
  697.   LINEGENERATETERM_DONE                   = $00000001;
  698.   LINEGENERATETERM_CANCEL                 = $00000002;
  699.  
  700. {$IFDEF Tapi_Ver20}
  701. //
  702. // These constants are mutually exclusive - there's no way to specify more
  703. // than one at a time (and it doesn't make sense, either) so they're
  704. // ordinal rather than bits.
  705. //
  706.   LINEINITIALIZEEXOPTION_USEHIDDENWINDOW      = $00000001; // TAPI v2.0
  707.   LINEINITIALIZEEXOPTION_USEEVENT             = $00000002; // TAPI v2.0
  708.   LINEINITIALIZEEXOPTION_USECOMPLETIONPORT    = $00000003; // TAPI v2.0
  709. {$ENDIF}
  710.  
  711.   LINELOCATIONOPTION_PULSEDIAL            = $00000001;     // TAPI v1.4
  712.  
  713.   LINEMAPPER                              = $FFFFFFFF;
  714.  
  715.   LINEMEDIACONTROL_NONE                   = $00000001;
  716.   LINEMEDIACONTROL_START                  = $00000002;
  717.   LINEMEDIACONTROL_RESET                  = $00000004;
  718.   LINEMEDIACONTROL_PAUSE                  = $00000008;
  719.   LINEMEDIACONTROL_RESUME                 = $00000010;
  720.   LINEMEDIACONTROL_RATEUP                 = $00000020;
  721.   LINEMEDIACONTROL_RATEDOWN               = $00000040;
  722.   LINEMEDIACONTROL_RATENORMAL             = $00000080;
  723.   LINEMEDIACONTROL_VOLUMEUP               = $00000100;
  724.   LINEMEDIACONTROL_VOLUMEDOWN             = $00000200;
  725.   LINEMEDIACONTROL_VOLUMENORMAL           = $00000400;
  726.  
  727.   LINEMEDIAMODE_UNKNOWN                   = $00000002;
  728.   LINEMEDIAMODE_INTERACTIVEVOICE          = $00000004;
  729.   LINEMEDIAMODE_AUTOMATEDVOICE            = $00000008;
  730.   LINEMEDIAMODE_DATAMODEM                 = $00000010;
  731.   LINEMEDIAMODE_G3FAX                     = $00000020;
  732.   LINEMEDIAMODE_TDD                       = $00000040;
  733.   LINEMEDIAMODE_G4FAX                     = $00000080;
  734.   LINEMEDIAMODE_DIGITALDATA               = $00000100;
  735.   LINEMEDIAMODE_TELETEX                   = $00000200;
  736.   LINEMEDIAMODE_VIDEOTEX                  = $00000400;
  737.   LINEMEDIAMODE_TELEX                     = $00000800;
  738.   LINEMEDIAMODE_MIXED                     = $00001000;
  739.   LINEMEDIAMODE_ADSI                      = $00002000;
  740.   LINEMEDIAMODE_VOICEVIEW                 = $00004000;      // TAPI v1.4
  741.   LAST_LINEMEDIAMODE                      = $00004000;
  742.  
  743.   LINEOFFERINGMODE_ACTIVE                 = $00000001;      // TAPI v1.4
  744.   LINEOFFERINGMODE_INACTIVE               = $00000002;      // TAPI v1.4
  745.  
  746. {$IFDEF Tapi_Ver20}
  747.   LINEOPENOPTION_SINGLEADDRESS            = $80000000;      // TAPI v2.0
  748.   LINEOPENOPTION_PROXY                    = $40000000;      // TAPI v2.0
  749. {$ENDIF}
  750.  
  751.   LINEPARKMODE_DIRECTED                   = $00000001;
  752.   LINEPARKMODE_NONDIRECTED                = $00000002;
  753.  
  754. {$IFDEF Tapi_Ver20}
  755.   LINEPROXYREQUEST_SETAGENTGROUP          = $00000001;      // TAPI v2.0
  756.   LINEPROXYREQUEST_SETAGENTSTATE          = $00000002;      // TAPI v2.0
  757.   LINEPROXYREQUEST_SETAGENTACTIVITY       = $00000003;      // TAPI v2.0
  758.   LINEPROXYREQUEST_GETAGENTCAPS           = $00000004;      // TAPI v2.0
  759.   LINEPROXYREQUEST_GETAGENTSTATUS         = $00000005;      // TAPI v2.0
  760.   LINEPROXYREQUEST_AGENTSPECIFIC          = $00000006;      // TAPI v2.0
  761.   LINEPROXYREQUEST_GETAGENTACTIVITYLIST   = $00000007;      // TAPI v2.0
  762.   LINEPROXYREQUEST_GETAGENTGROUPLIST      = $00000008;      // TAPI v2.0
  763. {$ENDIF}
  764.  
  765.   LINEREMOVEFROMCONF_NONE                 = $00000001;
  766.   LINEREMOVEFROMCONF_LAST                 = $00000002;
  767.   LINEREMOVEFROMCONF_ANY                  = $00000003;
  768.  
  769.   LINEREQUESTMODE_MAKECALL                = $00000001;
  770.   LINEREQUESTMODE_MEDIACALL               = $00000002;
  771.   LINEREQUESTMODE_DROP                    = $00000004;
  772.   LAST_LINEREQUESTMODE                    = LINEREQUESTMODE_MEDIACALL;
  773.  
  774.   LINEROAMMODE_UNKNOWN                    = $00000001;
  775.   LINEROAMMODE_UNAVAIL                    = $00000002;
  776.   LINEROAMMODE_HOME                       = $00000004;
  777.   LINEROAMMODE_ROAMA                      = $00000008;
  778.   LINEROAMMODE_ROAMB                      = $00000010;
  779.  
  780.   LINESPECIALINFO_NOCIRCUIT               = $00000001;
  781.   LINESPECIALINFO_CUSTIRREG               = $00000002;
  782.   LINESPECIALINFO_REORDER                 = $00000004;
  783.   LINESPECIALINFO_UNKNOWN                 = $00000008;
  784.   LINESPECIALINFO_UNAVAIL                 = $00000010;
  785.  
  786.   LINETERMDEV_PHONE                       = $00000001;
  787.   LINETERMDEV_HEADSET                     = $00000002;
  788.   LINETERMDEV_SPEAKER                     = $00000004;
  789.  
  790.   LINETERMMODE_BUTTONS                    = $00000001;
  791.   LINETERMMODE_LAMPS                      = $00000002;
  792.   LINETERMMODE_DISPLAY                    = $00000004;
  793.   LINETERMMODE_RINGER                     = $00000008;
  794.   LINETERMMODE_HOOKSWITCH                 = $00000010;
  795.   LINETERMMODE_MEDIATOLINE                = $00000020;
  796.   LINETERMMODE_MEDIAFROMLINE              = $00000040;
  797.   LINETERMMODE_MEDIABIDIRECT              = $00000080;
  798.  
  799.   LINETERMSHARING_PRIVATE                 = $00000001;
  800.   LINETERMSHARING_SHAREDEXCL              = $00000002;
  801.   LINETERMSHARING_SHAREDCONF              = $00000004;
  802.  
  803.   LINETOLLLISTOPTION_ADD                  = $00000001;
  804.   LINETOLLLISTOPTION_REMOVE               = $00000002;
  805.  
  806.   LINETONEMODE_CUSTOM                     = $00000001;
  807.   LINETONEMODE_RINGBACK                   = $00000002;
  808.   LINETONEMODE_BUSY                       = $00000004;
  809.   LINETONEMODE_BEEP                       = $00000008;
  810.   LINETONEMODE_BILLING                    = $00000010;
  811.  
  812.   LINETRANSFERMODE_TRANSFER               = $00000001;
  813.   LINETRANSFERMODE_CONFERENCE             = $00000002;
  814.  
  815.   LINETRANSLATEOPTION_CARDOVERRIDE        = $00000001;
  816.   LINETRANSLATEOPTION_CANCELCALLWAITING   = $00000002;      // TAPI v1.4
  817.   LINETRANSLATEOPTION_FORCELOCAL          = $00000004;      // TAPI v1.4
  818.   LINETRANSLATEOPTION_FORCELD             = $00000008;      // TAPI v1.4
  819.  
  820.   LINETRANSLATERESULT_CANONICAL           = $00000001;
  821.   LINETRANSLATERESULT_INTERNATIONAL       = $00000002;
  822.   LINETRANSLATERESULT_LONGDISTANCE        = $00000004;
  823.   LINETRANSLATERESULT_LOCAL               = $00000008;
  824.   LINETRANSLATERESULT_INTOLLLIST          = $00000010;
  825.   LINETRANSLATERESULT_NOTINTOLLLIST       = $00000020;
  826.   LINETRANSLATERESULT_DIALBILLING         = $00000040;
  827.   LINETRANSLATERESULT_DIALQUIET           = $00000080;
  828.   LINETRANSLATERESULT_DIALDIALTONE        = $00000100;
  829.   LINETRANSLATERESULT_DIALPROMPT          = $00000200;
  830. {$IFDEF Tapi_Ver20}
  831.   LINETRANSLATERESULT_VOICEDETECT         = $00000400;      // TAPI v2.0
  832. {$ENDIF}
  833.  
  834.   PHONEBUTTONFUNCTION_UNKNOWN             = $00000000;
  835.   PHONEBUTTONFUNCTION_CONFERENCE          = $00000001;
  836.   PHONEBUTTONFUNCTION_TRANSFER            = $00000002;
  837.   PHONEBUTTONFUNCTION_DROP                = $00000003;
  838.   PHONEBUTTONFUNCTION_HOLD                = $00000004;
  839.   PHONEBUTTONFUNCTION_RECALL              = $00000005;
  840.   PHONEBUTTONFUNCTION_DISCONNECT          = $00000006;
  841.   PHONEBUTTONFUNCTION_CONNECT             = $00000007;
  842.   PHONEBUTTONFUNCTION_MSGWAITON           = $00000008;
  843.   PHONEBUTTONFUNCTION_MSGWAITOFF          = $00000009;
  844.   PHONEBUTTONFUNCTION_SELECTRING          = $0000000A;
  845.   PHONEBUTTONFUNCTION_ABBREVDIAL          = $0000000B;
  846.   PHONEBUTTONFUNCTION_FORWARD             = $0000000C;
  847.   PHONEBUTTONFUNCTION_PICKUP              = $0000000D;
  848.   PHONEBUTTONFUNCTION_RINGAGAIN           = $0000000E;
  849.   PHONEBUTTONFUNCTION_PARK                = $0000000F;
  850.   PHONEBUTTONFUNCTION_REJECT              = $00000010;
  851.   PHONEBUTTONFUNCTION_REDIRECT            = $00000011;
  852.   PHONEBUTTONFUNCTION_MUTE                = $00000012;
  853.   PHONEBUTTONFUNCTION_VOLUMEUP            = $00000013;
  854.   PHONEBUTTONFUNCTION_VOLUMEDOWN          = $00000014;
  855.   PHONEBUTTONFUNCTION_SPEAKERON           = $00000015;
  856.   PHONEBUTTONFUNCTION_SPEAKEROFF          = $00000016;
  857.   PHONEBUTTONFUNCTION_FLASH               = $00000017;
  858.   PHONEBUTTONFUNCTION_DATAON              = $00000018;
  859.   PHONEBUTTONFUNCTION_DATAOFF             = $00000019;
  860.   PHONEBUTTONFUNCTION_DONOTDISTURB        = $0000001A;
  861.   PHONEBUTTONFUNCTION_INTERCOM            = $0000001B;
  862.   PHONEBUTTONFUNCTION_BRIDGEDAPP          = $0000001C;
  863.   PHONEBUTTONFUNCTION_BUSY                = $0000001D;
  864.   PHONEBUTTONFUNCTION_CALLAPP             = $0000001E;
  865.   PHONEBUTTONFUNCTION_DATETIME            = $0000001F;
  866.   PHONEBUTTONFUNCTION_DIRECTORY           = $00000020;
  867.   PHONEBUTTONFUNCTION_COVER               = $00000021;
  868.   PHONEBUTTONFUNCTION_CALLID              = $00000022;
  869.   PHONEBUTTONFUNCTION_LASTNUM             = $00000023;
  870.   PHONEBUTTONFUNCTION_NIGHTSRV            = $00000024;
  871.   PHONEBUTTONFUNCTION_SENDCALLS           = $00000025;
  872.   PHONEBUTTONFUNCTION_MSGINDICATOR        = $00000026;
  873.   PHONEBUTTONFUNCTION_REPDIAL             = $00000027;
  874.   PHONEBUTTONFUNCTION_SETREPDIAL          = $00000028;
  875.   PHONEBUTTONFUNCTION_SYSTEMSPEED         = $00000029;
  876.   PHONEBUTTONFUNCTION_STATIONSPEED        = $0000002A;
  877.   PHONEBUTTONFUNCTION_CAMPON              = $0000002B;
  878.   PHONEBUTTONFUNCTION_SAVEREPEAT          = $0000002C;
  879.   PHONEBUTTONFUNCTION_QUEUECALL           = $0000002D;
  880.   PHONEBUTTONFUNCTION_NONE                = $0000002E;
  881.  
  882.   PHONEBUTTONMODE_DUMMY                   = $00000001;
  883.   PHONEBUTTONMODE_CALL                    = $00000002;
  884.   PHONEBUTTONMODE_FEATURE                 = $00000004;
  885.   PHONEBUTTONMODE_KEYPAD                  = $00000008;
  886.   PHONEBUTTONMODE_LOCAL                   = $00000010;
  887.   PHONEBUTTONMODE_DISPLAY                 = $00000020;
  888.  
  889.   PHONEBUTTONSTATE_UP                     = $00000001;
  890.   PHONEBUTTONSTATE_DOWN                   = $00000002;
  891.   PHONEBUTTONSTATE_UNKNOWN                = $00000004;      // TAPI v1.4
  892.   PHONEBUTTONSTATE_UNAVAIL                = $00000008;      // TAPI v1.4
  893.  
  894.   PHONEERR_ALLOCATED                      = $90000001;
  895.   PHONEERR_BADDEVICEID                    = $90000002;
  896.   PHONEERR_INCOMPATIBLEAPIVERSION         = $90000003;
  897.   PHONEERR_INCOMPATIBLEEXTVERSION         = $90000004;
  898.   PHONEERR_INIFILECORRUPT                 = $90000005;
  899.   PHONEERR_INUSE                          = $90000006;
  900.   PHONEERR_INVALAPPHANDLE                 = $90000007;
  901.   PHONEERR_INVALAPPNAME                   = $90000008;
  902.   PHONEERR_INVALBUTTONLAMPID              = $90000009;
  903.   PHONEERR_INVALBUTTONMODE                = $9000000A;
  904.   PHONEERR_INVALBUTTONSTATE               = $9000000B;
  905.   PHONEERR_INVALDATAID                    = $9000000C;
  906.   PHONEERR_INVALDEVICECLASS               = $9000000D;
  907.   PHONEERR_INVALEXTVERSION                = $9000000E;
  908.   PHONEERR_INVALHOOKSWITCHDEV             = $9000000F;
  909.   PHONEERR_INVALHOOKSWITCHMODE            = $90000010;
  910.   PHONEERR_INVALLAMPMODE                  = $90000011;
  911.   PHONEERR_INVALPARAM                     = $90000012;
  912.   PHONEERR_INVALPHONEHANDLE               = $90000013;
  913.   PHONEERR_INVALPHONESTATE                = $90000014;
  914.   PHONEERR_INVALPOINTER                   = $90000015;
  915.   PHONEERR_INVALPRIVILEGE                 = $90000016;
  916.   PHONEERR_INVALRINGMODE                  = $90000017;
  917.   PHONEERR_NODEVICE                       = $90000018;
  918.   PHONEERR_NODRIVER                       = $90000019;
  919.   PHONEERR_NOMEM                          = $9000001A;
  920.   PHONEERR_NOTOWNER                       = $9000001B;
  921.   PHONEERR_OPERATIONFAILED                = $9000001C;
  922.   PHONEERR_OPERATIONUNAVAIL               = $9000001D;
  923.   PHONEERR_RESOURCEUNAVAIL                = $9000001F;
  924.   PHONEERR_REQUESTOVERRUN                 = $90000020;
  925.   PHONEERR_STRUCTURETOOSMALL              = $90000021;
  926.   PHONEERR_UNINITIALIZED                  = $90000022;
  927.   PHONEERR_REINIT                         = $90000023;
  928.  
  929.  
  930. {$IFDEF Tapi_Ver20}
  931.   PHONEFEATURE_GETBUTTONINFO              = $00000001;      // TAPI v2.0
  932.   PHONEFEATURE_GETDATA                    = $00000002;      // TAPI v2.0
  933.   PHONEFEATURE_GETDISPLAY                 = $00000004;      // TAPI v2.0
  934.   PHONEFEATURE_GETGAINHANDSET             = $00000008;      // TAPI v2.0
  935.   PHONEFEATURE_GETGAINSPEAKER             = $00000010;      // TAPI v2.0
  936.   PHONEFEATURE_GETGAINHEADSET             = $00000020;      // TAPI v2.0
  937.   PHONEFEATURE_GETHOOKSWITCHHANDSET       = $00000040;      // TAPI v2.0
  938.   PHONEFEATURE_GETHOOKSWITCHSPEAKER       = $00000080;      // TAPI v2.0
  939.   PHONEFEATURE_GETHOOKSWITCHHEADSET       = $00000100;      // TAPI v2.0
  940.   PHONEFEATURE_GETLAMP                    = $00000200;      // TAPI v2.0
  941.   PHONEFEATURE_GETRING                    = $00000400;      // TAPI v2.0
  942.   PHONEFEATURE_GETVOLUMEHANDSET           = $00000800;      // TAPI v2.0
  943.   PHONEFEATURE_GETVOLUMESPEAKER           = $00001000;      // TAPI v2.0
  944.   PHONEFEATURE_GETVOLUMEHEADSET           = $00002000;      // TAPI v2.0
  945.   PHONEFEATURE_SETBUTTONINFO              = $00004000;      // TAPI v2.0
  946.   PHONEFEATURE_SETDATA                    = $00008000;      // TAPI v2.0
  947.   PHONEFEATURE_SETDISPLAY                 = $00010000;      // TAPI v2.0
  948.   PHONEFEATURE_SETGAINHANDSET             = $00020000;      // TAPI v2.0
  949.   PHONEFEATURE_SETGAINSPEAKER             = $00040000;      // TAPI v2.0
  950.   PHONEFEATURE_SETGAINHEADSET             = $00080000;      // TAPI v2.0
  951.   PHONEFEATURE_SETHOOKSWITCHHANDSET       = $00100000;      // TAPI v2.0
  952.   PHONEFEATURE_SETHOOKSWITCHSPEAKER       = $00200000;      // TAPI v2.0
  953.   PHONEFEATURE_SETHOOKSWITCHHEADSET       = $00400000;      // TAPI v2.0
  954.   PHONEFEATURE_SETLAMP                    = $00800000;      // TAPI v2.0
  955.   PHONEFEATURE_SETRING                    = $01000000;      // TAPI v2.0
  956.   PHONEFEATURE_SETVOLUMEHANDSET           = $02000000;      // TAPI v2.0
  957.   PHONEFEATURE_SETVOLUMESPEAKER           = $04000000;      // TAPI v2.0
  958.   PHONEFEATURE_SETVOLUMEHEADSET           = $08000000;      // TAPI v2.0
  959. {$ENDIF}
  960.  
  961.   PHONEHOOKSWITCHDEV_HANDSET              = $00000001;
  962.   PHONEHOOKSWITCHDEV_SPEAKER              = $00000002;
  963.   PHONEHOOKSWITCHDEV_HEADSET              = $00000004;
  964.  
  965.   PHONEHOOKSWITCHMODE_ONHOOK              = $00000001;
  966.   PHONEHOOKSWITCHMODE_MIC                 = $00000002;
  967.   PHONEHOOKSWITCHMODE_SPEAKER             = $00000004;
  968.   PHONEHOOKSWITCHMODE_MICSPEAKER          = $00000008;
  969.   PHONEHOOKSWITCHMODE_UNKNOWN             = $00000010;
  970.  
  971. {$IFDEF Tapi_Ver20}
  972.   PHONEINITIALIZEEXOPTION_USEHIDDENWINDOW     = $00000001;  // TAPI v2.0
  973.   PHONEINITIALIZEEXOPTION_USEEVENT            = $00000002;  // TAPI v2.0
  974.   PHONEINITIALIZEEXOPTION_USECOMPLETIONPORT   = $00000003;  // TAPI v2.0
  975. {$ENDIF}
  976.  
  977.   PHONELAMPMODE_DUMMY                     = $00000001;
  978.   PHONELAMPMODE_OFF                       = $00000002;
  979.   PHONELAMPMODE_STEADY                    = $00000004;
  980.   PHONELAMPMODE_WINK                      = $00000008;
  981.   PHONELAMPMODE_FLASH                     = $00000010;
  982.   PHONELAMPMODE_FLUTTER                   = $00000020;
  983.   PHONELAMPMODE_BROKENFLUTTER             = $00000040;
  984.   PHONELAMPMODE_UNKNOWN                   = $00000080;
  985.  
  986.   PHONEPRIVILEGE_MONITOR                  = $00000001;
  987.   PHONEPRIVILEGE_OWNER                    = $00000002;
  988.  
  989.   PHONESTATE_OTHER                        = $00000001;
  990.   PHONESTATE_CONNECTED                    = $00000002;
  991.   PHONESTATE_DISCONNECTED                 = $00000004;
  992.   PHONESTATE_OWNER                        = $00000008;
  993.   PHONESTATE_MONITORS                     = $00000010;
  994.   PHONESTATE_DISPLAY                      = $00000020;
  995.   PHONESTATE_LAMP                         = $00000040;
  996.   PHONESTATE_RINGMODE                     = $00000080;
  997.   PHONESTATE_RINGVOLUME                   = $00000100;
  998.   PHONESTATE_HANDSETHOOKSWITCH            = $00000200;
  999.   PHONESTATE_HANDSETVOLUME                = $00000400;
  1000.   PHONESTATE_HANDSETGAIN                  = $00000800;
  1001.   PHONESTATE_SPEAKERHOOKSWITCH            = $00001000;
  1002.   PHONESTATE_SPEAKERVOLUME                = $00002000;
  1003.   PHONESTATE_SPEAKERGAIN                  = $00004000;
  1004.   PHONESTATE_HEADSETHOOKSWITCH            = $00008000;
  1005.   PHONESTATE_HEADSETVOLUME                = $00010000;
  1006.   PHONESTATE_HEADSETGAIN                  = $00020000;
  1007.   PHONESTATE_SUSPEND                      = $00040000;
  1008.   PHONESTATE_RESUME                       = $00080000;
  1009.   PHONESTATE_DEVSPECIFIC                  = $00100000;
  1010.   PHONESTATE_REINIT                       = $00200000;
  1011.   PHONESTATE_CAPSCHANGE                   = $00400000;      // TAPI v1.4
  1012.   PHONESTATE_REMOVED                      = $00800000;      // TAPI v1.4
  1013.  
  1014.   PHONESTATUSFLAGS_CONNECTED              = $00000001;
  1015.   PHONESTATUSFLAGS_SUSPENDED              = $00000002;
  1016.  
  1017.   STRINGFORMAT_ASCII                      = $00000001;
  1018.   STRINGFORMAT_DBCS                       = $00000002;
  1019.   STRINGFORMAT_UNICODE                    = $00000003;
  1020.   STRINGFORMAT_BINARY                     = $00000004;
  1021.  
  1022.   TAPI_REPLY                              = WM_USER + 99;
  1023.  
  1024.   TAPIERR_CONNECTED                       = 0;
  1025.   TAPIERR_DROPPED                         = -1;
  1026.   TAPIERR_NOREQUESTRECIPIENT              = -2;
  1027.   TAPIERR_REQUESTQUEUEFULL                = -3;
  1028.   TAPIERR_INVALDESTADDRESS                = -4;
  1029.   TAPIERR_INVALWINDOWHANDLE               = -5;
  1030.   TAPIERR_INVALDEVICECLASS                = -6;
  1031.   TAPIERR_INVALDEVICEID                   = -7;
  1032.   TAPIERR_DEVICECLASSUNAVAIL              = -8;
  1033.   TAPIERR_DEVICEIDUNAVAIL                 = -9;
  1034.   TAPIERR_DEVICEINUSE                     = -10;
  1035.   TAPIERR_DESTBUSY                        = -11;
  1036.   TAPIERR_DESTNOANSWER                    = -12;
  1037.   TAPIERR_DESTUNAVAIL                     = -13;
  1038.   TAPIERR_UNKNOWNWINHANDLE                = -14;
  1039.   TAPIERR_UNKNOWNREQUESTID                = -15;
  1040.   TAPIERR_REQUESTFAILED                   = -16;
  1041.   TAPIERR_REQUESTCANCELLED                = -17;
  1042.   TAPIERR_INVALPOINTER                    = -18;
  1043.  
  1044.  
  1045.   TAPIMAXDESTADDRESSSIZE                  = 80;
  1046.   TAPIMAXAPPNAMESIZE                      = 40;
  1047.   TAPIMAXCALLEDPARTYSIZE                  = 40;
  1048.   TAPIMAXCOMMENTSIZE                      = 80;
  1049.   TAPIMAXDEVICECLASSSIZE                  = 40;
  1050.   TAPIMAXDEVICEIDSIZE                     = 40;
  1051.  
  1052.  
  1053. type
  1054.   LPLINEADDRESSCAPS = ^TLINEADDRESSCAPS;
  1055.   PLINEADDRESSCAPS = ^TLINEADDRESSCAPS;
  1056.   TLINEADDRESSCAPS =
  1057.     record
  1058.       dwTotalSize,
  1059.       dwNeededSize,
  1060.       dwUsedSize,
  1061.       dwLineDeviceID,
  1062.       dwAddressSize,
  1063.       dwAddressOffset,
  1064.       dwDevSpecificSize,
  1065.       dwDevSpecificOffset,
  1066.       dwAddressSharing,
  1067.       dwAddressStates,
  1068.       dwCallInfoStates,
  1069.       dwCallerIDFlags,
  1070.       dwCalledIDFlags,
  1071.       dwConnectedIDFlags,
  1072.       dwRedirectionIDFlags,
  1073.       dwRedirectingIDFlags,
  1074.       dwCallStates,
  1075.       dwDialToneModes,
  1076.       dwBusyModes,
  1077.       dwSpecialInfo,
  1078.       dwDisconnectModes,
  1079.       dwMaxNumActiveCalls,
  1080.       dwMaxNumOnHoldCalls,
  1081.       dwMaxNumOnHoldPendingCalls,
  1082.       dwMaxNumConference,
  1083.       dwMaxNumTransConf,
  1084.       dwAddrCapFlags,
  1085.       dwCallFeatures,
  1086.       dwRemoveFromConfCaps,
  1087.       dwRemoveFromConfState,
  1088.       dwTransferModes,
  1089.       dwParkModes,
  1090.       dwForwardModes,
  1091.       dwMaxForwardEntries,
  1092.       dwMaxSpecificEntries,
  1093.       dwMinFwdNumRings,
  1094.       dwMaxFwdNumRings,
  1095.       dwMaxCallCompletions,
  1096.       dwCallCompletionConds,
  1097.       dwCallCompletionModes,
  1098.       dwNumCompletionMessages,
  1099.       dwCompletionMsgTextEntrySize,
  1100.       dwCompletionMsgTextSize,
  1101.       dwCompletionMsgTextOffset,
  1102.  
  1103.       dwAddressFeatures : DWORD;                      // TAPI v1.4
  1104.  
  1105. {$IFDEF Tapi_Ver20}
  1106.       dwPredictiveAutoTransferStates,                 // TAPI v2.0
  1107.       dwNumCallTreatments,                            // TAPI v2.0
  1108.       dwCallTreatmentListSize,                        // TAPI v2.0
  1109.       dwCallTreatmentListOffset,                      // TAPI v2.0
  1110.       dwDeviceClassesSize,                            // TAPI v2.0
  1111.       dwDeviceClassesOffset,                          // TAPI v2.0
  1112.       dwMaxCallDataSize,                              // TAPI v2.0
  1113.       dwCallFeatures2,                                // TAPI v2.0
  1114.       dwMaxNoAnswerTimeout,                           // TAPI v2.0
  1115.       dwConnectedModes,                               // TAPI v2.0
  1116.       dwOfferingModes,                                // TAPI v2.0
  1117.       dwAvailableMediaModes : DWORD;                  // TAPI v2.0
  1118. {$ENDIF}
  1119.     end;
  1120.  
  1121.   LPLINEADDRESSSTATUS = ^TLINEADDRESSSTATUS;
  1122.   PLINEADDRESSSTATUS = ^TLINEADDRESSSTATUS;
  1123.   TLINEADDRESSSTATUS =
  1124.     record
  1125.       dwTotalSize,
  1126.       dwNeededSize,
  1127.       dwUsedSize,
  1128.       dwNumInUse,
  1129.       dwNumActiveCalls,
  1130.       dwNumOnHoldCalls,
  1131.       dwNumOnHoldPendCalls,
  1132.       dwAddressFeatures,
  1133.       dwNumRingsNoAnswer,
  1134.       dwForwardNumEntries,
  1135.       dwForwardSize,
  1136.       dwForwardOffset,
  1137.       dwTerminalModesSize,
  1138.       dwTerminalModesOffset,
  1139.       dwDevSpecificSize,
  1140.       dwDevSpecificOffset : DWORD;
  1141.     end;
  1142.  
  1143. {$IFDEF Tapi_Ver20}
  1144.   LPLINEAGENTACTIVITYENTRY = ^TLINEAGENTACTIVITYENTRY;
  1145.   PLINEAGENTACTIVITYENTRY = ^TLINEAGENTACTIVITYENTRY;
  1146.   TLINEAGENTACTIVITYENTRY =
  1147.     record
  1148.       dwID,                                           // TAPI v2.0
  1149.       dwNameSize,                                     // TAPI v2.0
  1150.       dwNameOffset : DWORD;                           // TAPI v2.0
  1151.     end;
  1152.  
  1153.   LPLINEAGENTACTIVITYLIST = ^TLINEAGENTACTIVITYLIST;
  1154.   PLINEAGENTACTIVITYLIST = ^TLINEAGENTACTIVITYLIST;
  1155.   TLINEAGENTACTIVITYLIST =
  1156.     record
  1157.       dwTotalSize,                                    // TAPI v2.0
  1158.       dwNeededSize,                                   // TAPI v2.0
  1159.       dwUsedSize,                                     // TAPI v2.0
  1160.       dwNumEntries,                                   // TAPI v2.0
  1161.       dwListSize,                                     // TAPI v2.0
  1162.       dwListOffset : DWORD;                           // TAPI v2.0
  1163.     end;
  1164.  
  1165.   LPLINEAGENTCAPS = ^TLINEAGENTCAPS;
  1166.   PLINEAGENTCAPS = ^TLINEAGENTCAPS;
  1167.   TLINEAGENTCAPS =
  1168.     record
  1169.       dwTotalSize,                                    // TAPI v2.0
  1170.       dwNeededSize,                                   // TAPI v2.0
  1171.       dwUsedSize,                                     // TAPI v2.0
  1172.       dwAgentHandlerInfoSize,                         // TAPI v2.0
  1173.       dwAgentHandlerInfoOffset,                       // TAPI v2.0
  1174.       dwCapsVersion,                                  // TAPI v2.0
  1175.       dwFeatures,                                     // TAPI v2.0
  1176.       dwStates,                                       // TAPI v2.0
  1177.       dwNextStates,                                   // TAPI v2.0
  1178.       dwMaxNumGroupEntries,                           // TAPI v2.0
  1179.       dwAgentStatusMessages,                          // TAPI v2.0
  1180.       dwNumAgentExtensionIDs,                         // TAPI v2.0
  1181.       dwAgentExtensionIDListSize,                     // TAPI v2.0
  1182.       dwAgentExtensionIDListOffset : DWORD;           // TAPI v2.0
  1183.     end;
  1184.  
  1185.   LPLINEAGENTGROUPENTRY = ^TLINEAGENTGROUPENTRY;
  1186.   PLINEAGENTGROUPENTRY = ^TLINEAGENTGROUPENTRY;
  1187.   TLINEAGENTGROUPENTRY =
  1188.     record
  1189.       GroupID :
  1190.         record
  1191.           dwGroupID1,                                 // TAPI v2.0
  1192.           dwGroupID2,                                 // TAPI v2.0
  1193.           dwGroupID3,                                 // TAPI v2.0
  1194.           dwGroupID4 : DWORD;                         // TAPI v2.0
  1195.         end;
  1196.       dwNameSize,                                     // TAPI v2.0
  1197.       dwNameOffset : DWORD;                           // TAPI v2.0
  1198.     end;
  1199.  
  1200.   LPLINEAGENTGROUPLIST = ^TLINEAGENTGROUPLIST;
  1201.   PLINEAGENTGROUPLIST = ^TLINEAGENTGROUPLIST;
  1202.   TLINEAGENTGROUPLIST =
  1203.     record
  1204.       dwTotalSize,                                    // TAPI v2.0
  1205.       dwNeededSize,                                   // TAPI v2.0
  1206.       dwUsedSize,                                     // TAPI v2.0
  1207.       dwNumEntries,                                   // TAPI v2.0
  1208.       dwListSize,                                     // TAPI v2.0
  1209.       dwListOffset : DWORD;                           // TAPI v2.0
  1210.     end;
  1211.  
  1212.   LPLINEAGENTSTATUS = ^TLINEAGENTSTATUS;
  1213.   PLINEAGENTSTATUS = ^TLINEAGENTSTATUS;
  1214.   TLINEAGENTSTATUS =
  1215.     record
  1216.       dwTotalSize,                                    // TAPI v2.0
  1217.       dwNeededSize,                                   // TAPI v2.0
  1218.       dwUsedSize,                                     // TAPI v2.0
  1219.       dwNumEntries,                                   // TAPI v2.0
  1220.       dwGroupListSize,                                // TAPI v2.0
  1221.       dwGroupListOffset,                              // TAPI v2.0
  1222.       dwState,                                        // TAPI v2.0
  1223.       dwNextState,                                    // TAPI v2.0
  1224.       dwActivityID,                                   // TAPI v2.0
  1225.       dwActivitySize,                                 // TAPI v2.0
  1226.       dwActivityOffset,                               // TAPI v2.0
  1227.       dwAgentFeatures,                                // TAPI v2.0
  1228.       dwValidStates,                                  // TAPI v2.0
  1229.       dwValidNextStates : DWORD;                      // TAPI v2.0
  1230.     end;
  1231.  
  1232.   LPLINEAPPINFO = ^TLINEAPPINFO;
  1233.   PLINEAPPINFO = ^TLINEAPPINFO;
  1234.   TLINEAPPINFO =
  1235.     record
  1236.       dwMachineNameSize,                              // TAPI v2.0
  1237.       dwMachineNameOffset,                            // TAPI v2.0
  1238.       dwUserNameSize,                                 // TAPI v2.0
  1239.       dwUserNameOffset,                               // TAPI v2.0
  1240.       dwModuleFilenameSize,                           // TAPI v2.0
  1241.       dwModuleFilenameOffset,                         // TAPI v2.0
  1242.       dwFriendlyNameSize,                             // TAPI v2.0
  1243.       dwFriendlyNameOffset,                           // TAPI v2.0
  1244.       dwMediaModes,                                   // TAPI v2.0
  1245.       dwAddressID : DWORD;                            // TAPI v2.0
  1246.     end;
  1247. {$ENDIF}
  1248.  
  1249.   LPLINEDIALPARAMS = ^TLINEDIALPARAMS;
  1250.   PLINEDIALPARAMS = ^TLINEDIALPARAMS;
  1251.   TLINEDIALPARAMS =
  1252.     record
  1253.       dwDialPause,
  1254.       dwDialSpeed,
  1255.       dwDigitDuration,
  1256.       dwWaitForDialtone : DWORD;
  1257.     end;
  1258.  
  1259.   LPLINECALLINFO = ^TLINECALLINFO;
  1260.   PLINECALLINFO = ^TLINECALLINFO;
  1261.   TLINECALLINFO =
  1262.     record
  1263.       dwTotalSize,
  1264.       dwNeededSize,
  1265.       dwUsedSize : DWORD;
  1266.       hLine : HLINE;
  1267.       dwLineDeviceID,
  1268.       dwAddressID,
  1269.       dwBearerMode,
  1270.       dwRate,
  1271.       dwMediaMode,
  1272.       dwAppSpecific,
  1273.       dwCallID,
  1274.       dwRelatedCallID,
  1275.       dwCallParamFlags,
  1276.       dwCallStates,
  1277.       dwMonitorDigitModes,
  1278.       dwMonitorMediaModes : DWORD;
  1279.       DialParams : TLINEDIALPARAMS;
  1280.       dwOrigin,
  1281.       dwReason,
  1282.       dwCompletionID,
  1283.       dwNumOwners,
  1284.       dwNumMonitors,
  1285.       dwCountryCode,
  1286.       dwTrunk,
  1287.       dwCallerIDFlags,
  1288.       dwCallerIDSize,
  1289.       dwCallerIDOffset,
  1290.       dwCallerIDNameSize,
  1291.       dwCallerIDNameOffset,
  1292.       dwCalledIDFlags,
  1293.       dwCalledIDSize,
  1294.       dwCalledIDOffset,
  1295.       dwCalledIDNameSize,
  1296.       dwCalledIDNameOffset,
  1297.       dwConnectedIDFlags,
  1298.       dwConnectedIDSize,
  1299.       dwConnectedIDOffset,
  1300.       dwConnectedIDNameSize,
  1301.       dwConnectedIDNameOffset,
  1302.       dwRedirectionIDFlags,
  1303.       dwRedirectionIDSize,
  1304.       dwRedirectionIDOffset,
  1305.       dwRedirectionIDNameSize,
  1306.       dwRedirectionIDNameOffset,
  1307.       dwRedirectingIDFlags,
  1308.       dwRedirectingIDSize,
  1309.       dwRedirectingIDOffset,
  1310.       dwRedirectingIDNameSize,
  1311.       dwRedirectingIDNameOffset,
  1312.       dwAppNameSize,
  1313.       dwAppNameOffset,
  1314.       dwDisplayableAddressSize,
  1315.       dwDisplayableAddressOffset,
  1316.       dwCalledPartySize,
  1317.       dwCalledPartyOffset,
  1318.       dwCommentSize,
  1319.       dwCommentOffset,
  1320.       dwDisplaySize,
  1321.       dwDisplayOffset,
  1322.       dwUserUserInfoSize,
  1323.       dwUserUserInfoOffset,
  1324.       dwHighLevelCompSize,
  1325.       dwHighLevelCompOffset,
  1326.       dwLowLevelCompSize,
  1327.       dwLowLevelCompOffset,
  1328.       dwChargingInfoSize,
  1329.       dwChargingInfoOffset,
  1330.       dwTerminalModesSize,
  1331.       dwTerminalModesOffset,
  1332.       dwDevSpecificSize,
  1333.       dwDevSpecificOffset : DWORD;
  1334.  
  1335. {$IFDEF Tapi_Ver20}
  1336.       dwCallTreatment,                                // TAPI v2.0
  1337.       dwCallDataSize,                                 // TAPI v2.0
  1338.       dwCallDataOffset,                               // TAPI v2.0
  1339.       dwSendingFlowspecSize,                          // TAPI v2.0
  1340.       dwSendingFlowspecOffset,                        // TAPI v2.0
  1341.       dwReceivingFlowspecSize,                        // TAPI v2.0
  1342.       dwReceivingFlowspecOffset : DWORD;              // TAPI v2.0
  1343. {$ENDIF}
  1344.     end;
  1345.  
  1346.   LPLINECALLLIST = ^TLINECALLLIST;
  1347.   PLINECALLLIST = ^TLINECALLLIST;
  1348.   TLINECALLLIST =
  1349.     record
  1350.       dwTotalSize,
  1351.       dwNeededSize,
  1352.       dwUsedSize,
  1353.       dwCallsNumEntries,
  1354.       dwCallsSize,
  1355.       dwCallsOffset : DWORD;
  1356.     end;
  1357.  
  1358.   LPLINECALLPARAMS = ^TLINECALLPARAMS;
  1359.   PLINECALLPARAMS = ^TLINECALLPARAMS;
  1360.   TLINECALLPARAMS =
  1361.     record                            // Defaults:
  1362.       dwTotalSize,                    // ---------
  1363.       dwBearerMode,                   // voice
  1364.       dwMinRate,                      // (3.1kHz)
  1365.       dwMaxRate,                      // (3.1kHz)
  1366.       dwMediaMode,                    // interactiveVoice
  1367.       dwCallParamFlags,               // 0
  1368.       dwAddressMode,                  // addressID
  1369.       dwAddressID : DWORD;            // (any available)
  1370.       DialParams : TLINEDIALPARAMS;   // (0, 0, 0, 0)
  1371.       dwOrigAddressSize,              // 0
  1372.       dwOrigAddressOffset,
  1373.       dwDisplayableAddressSize,
  1374.       dwDisplayableAddressOffset,
  1375.       dwCalledPartySize,              // 0
  1376.       dwCalledPartyOffset,
  1377.       dwCommentSize,                  // 0
  1378.       dwCommentOffset,
  1379.       dwUserUserInfoSize,             // 0
  1380.       dwUserUserInfoOffset,
  1381.       dwHighLevelCompSize,            // 0
  1382.       dwHighLevelCompOffset,
  1383.       dwLowLevelCompSize,             // 0
  1384.       dwLowLevelCompOffset,
  1385.       dwDevSpecificSize,              // 0
  1386.       dwDevSpecificOffset : DWORD;
  1387.  
  1388. {$IFDEF Tapi_Ver20}
  1389.       dwPredictiveAutoTransferStates,                 // TAPI v2.0
  1390.       dwTargetAddressSize,                            // TAPI v2.0
  1391.       dwTargetAddressOffset,                          // TAPI v2.0
  1392.       dwSendingFlowspecSize,                          // TAPI v2.0
  1393.       dwSendingFlowspecOffset,                        // TAPI v2.0
  1394.       dwReceivingFlowspecSize,                        // TAPI v2.0
  1395.       dwReceivingFlowspecOffset,                      // TAPI v2.0
  1396.       dwDeviceClassSize,                              // TAPI v2.0
  1397.       dwDeviceClassOffset,                            // TAPI v2.0
  1398.       dwDeviceConfigSize,                             // TAPI v2.0
  1399.       dwDeviceConfigOffset,                           // TAPI v2.0
  1400.       dwCallDataSize,                                 // TAPI v2.0
  1401.       dwCallDataOffset,                               // TAPI v2.0
  1402.       dwNoAnswerTimeout,                              // TAPI v2.0
  1403.       dwCallingPartyIDSize,                           // TAPI v2.0
  1404.       dwCallingPartyIDOffset : DWORD;                 // TAPI v2.0
  1405. {$ENDIF}
  1406.     end;
  1407.  
  1408.   LPLINECALLSTATUS = ^TLINECALLSTATUS;
  1409.   PLINECALLSTATUS = ^TLINECALLSTATUS;
  1410.   TLINECALLSTATUS =
  1411.     record
  1412.       dwTotalSize,
  1413.       dwNeededSize,
  1414.       dwUsedSize,
  1415.       dwCallState,
  1416.       dwCallStateMode,
  1417.       dwCallPrivilege,
  1418.       dwCallFeatures,
  1419.       dwDevSpecificSize,
  1420.       dwDevSpecificOffset : DWORD;
  1421.  
  1422. {$IFDEF Tapi_Ver20}
  1423.       dwCallFeatures2 : DWORD;                                    // TAPI v2.0
  1424.       {$IFDEF Win32}
  1425.       tStateEntryTime : TSystemTime;                              // TAPI v2.0
  1426.       {$ELSE}
  1427.       tStateEntryTime : array[0..7] of Word;                      // TAPI v2.0
  1428.       {$ENDIF}
  1429. {$ENDIF}
  1430.     end;
  1431.     
  1432.  
  1433. {$IFDEF Tapi_Ver20}
  1434.   LPLINECALLTREATMENTENTRY = ^TLINECALLTREATMENTENTRY;
  1435.   PLINECALLTREATMENTENTRY = ^TLINECALLTREATMENTENTRY;
  1436.   TLINECALLTREATMENTENTRY =
  1437.     record
  1438.       dwCallTreatmentID,                              // TAPI v2.0
  1439.       dwCallTreatmentNameSize,                        // TAPI v2.0
  1440.       dwCallTreatmentNameOffset : DWORD;              // TAPI v2.0
  1441.     end;
  1442. {$ENDIF}
  1443.  
  1444.  
  1445.   LPLINECARDENTRY = ^TLINECARDENTRY;
  1446.   PLINECARDENTRY = ^TLINECARDENTRY;
  1447.   TLINECARDENTRY =
  1448.     record
  1449.       dwPermanentCardID,
  1450.       dwCardNameSize,
  1451.       dwCardNameOffset,
  1452.       dwCardNumberDigits,                             // TAPI v1.4
  1453.       dwSameAreaRuleSize,                             // TAPI v1.4
  1454.       dwSameAreaRuleOffset,                           // TAPI v1.4
  1455.       dwLongDistanceRuleSize,                         // TAPI v1.4
  1456.       dwLongDistanceRuleOffset,                       // TAPI v1.4
  1457.       dwInternationalRuleSize,                        // TAPI v1.4
  1458.       dwInternationalRuleOffset,                      // TAPI v1.4
  1459.       dwOptions : DWORD;                              // TAPI v1.4
  1460.     end;
  1461.  
  1462.   LPLINECOUNTRYENTRY = ^TLINECOUNTRYENTRY;
  1463.   PLINECOUNTRYENTRY = ^TLINECOUNTRYENTRY;
  1464.   TLINECOUNTRYENTRY =
  1465.     record
  1466.       dwCountryID,                                    // TAPI v1.4
  1467.       dwCountryCode,                                  // TAPI v1.4
  1468.       dwNextCountryID,                                // TAPI v1.4
  1469.       dwCountryNameSize,                              // TAPI v1.4
  1470.       dwCountryNameOffset,                            // TAPI v1.4
  1471.       dwSameAreaRuleSize,                             // TAPI v1.4
  1472.       dwSameAreaRuleOffset,                           // TAPI v1.4
  1473.       dwLongDistanceRuleSize,                         // TAPI v1.4
  1474.       dwLongDistanceRuleOffset,                       // TAPI v1.4
  1475.       dwInternationalRuleSize,                        // TAPI v1.4
  1476.       dwInternationalRuleOffset : DWORD;              // TAPI v1.4
  1477.     end;
  1478.  
  1479.   LPLINECOUNTRYLIST = ^TLINECOUNTRYLIST;
  1480.   PLINECOUNTRYLIST = ^TLINECOUNTRYLIST;
  1481.   TLINECOUNTRYLIST =
  1482.     record
  1483.       dwTotalSize,                                    // TAPI v1.4
  1484.       dwNeededSize,                                   // TAPI v1.4
  1485.       dwUsedSize,                                     // TAPI v1.4
  1486.       dwNumCountries,                                 // TAPI v1.4
  1487.       dwCountryListSize,                              // TAPI v1.4
  1488.       dwCountryListOffset : DWORD;                    // TAPI v1.4
  1489.     end;
  1490.  
  1491.   LPLINEDEVCAPS = ^TLINEDEVCAPS;
  1492.   PLINEDEVCAPS = ^TLINEDEVCAPS;
  1493.   TLINEDEVCAPS =
  1494.     record
  1495.       dwTotalSize,
  1496.       dwNeededSize,
  1497.       dwUsedSize,
  1498.       dwProviderInfoSize,
  1499.       dwProviderInfoOffset,
  1500.       dwSwitchInfoSize,
  1501.       dwSwitchInfoOffset,
  1502.       dwPermanentLineID,
  1503.       dwLineNameSize,
  1504.       dwLineNameOffset,
  1505.       dwStringFormat,
  1506.       dwAddressModes,
  1507.       dwNumAddresses,
  1508.       dwBearerModes,
  1509.       dwMaxRate,
  1510.       dwMediaModes,
  1511.       dwGenerateToneModes,
  1512.       dwGenerateToneMaxNumFreq,
  1513.       dwGenerateDigitModes,
  1514.       dwMonitorToneMaxNumFreq,
  1515.       dwMonitorToneMaxNumEntries,
  1516.       dwMonitorDigitModes,
  1517.       dwGatherDigitsMinTimeout,
  1518.       dwGatherDigitsMaxTimeout,
  1519.       dwMedCtlDigitMaxListSize,
  1520.       dwMedCtlMediaMaxListSize,
  1521.       dwMedCtlToneMaxListSize,
  1522.       dwMedCtlCallStateMaxListSize,
  1523.       dwDevCapFlags,
  1524.       dwMaxNumActiveCalls,
  1525.       dwAnswerMode,
  1526.       dwRingModes,
  1527.       dwLineStates,
  1528.       dwUUIAcceptSize,
  1529.       dwUUIAnswerSize,
  1530.       dwUUIMakeCallSize,
  1531.       dwUUIDropSize,
  1532.       dwUUISendUserUserInfoSize,
  1533.       dwUUICallInfoSize : DWORD;
  1534.       MinDialParams,
  1535.       MaxDialParams,
  1536.       DefaultDialParams : TLINEDIALPARAMS;
  1537.       dwNumTerminals,
  1538.       dwTerminalCapsSize,
  1539.       dwTerminalCapsOffset,
  1540.       dwTerminalTextEntrySize,
  1541.       dwTerminalTextSize,
  1542.       dwTerminalTextOffset,
  1543.       dwDevSpecificSize,
  1544.       dwDevSpecificOffset,
  1545.  
  1546.       dwLineFeatures : DWORD;                         // TAPI v1.4
  1547.  
  1548. {$IFDEF Tapi_Ver20}
  1549.       dwSettableDevStatus,                            // TAPI v2.0
  1550.       dwDeviceClassesSize,                            // TAPI v2.0
  1551.       dwDeviceClassesOffset : DWORD;                  // TAPI v2.0
  1552. {$ENDIF}
  1553.     end;
  1554.  
  1555.   LPLINEDEVSTATUS = ^TLINEDEVSTATUS;
  1556.   PLINEDEVSTATUS = ^TLINEDEVSTATUS;
  1557.   TLINEDEVSTATUS =
  1558.     record
  1559.       dwTotalSize,
  1560.       dwNeededSize,
  1561.       dwUsedSize,
  1562.       dwNumOpens,
  1563.       dwOpenMediaModes,
  1564.       dwNumActiveCalls,
  1565.       dwNumOnHoldCalls,
  1566.       dwNumOnHoldPendCalls,
  1567.       dwLineFeatures,
  1568.       dwNumCallCompletions,
  1569.       dwRingMode,
  1570.       dwSignalLevel,
  1571.       dwBatteryLevel,
  1572.       dwRoamMode,
  1573.       dwDevStatusFlags,
  1574.       dwTerminalModesSize,
  1575.       dwTerminalModesOffset,
  1576.       dwDevSpecificSize,
  1577.       dwDevSpecificOffset : DWORD;
  1578.  
  1579. {$IFDEF Tapi_Ver20}
  1580.       dwAvailableMediaModes,                          // TAPI v2.0
  1581.       dwAppInfoSize,                                  // TAPI v2.0
  1582.       dwAppInfoOffset : DWORD;                        // TAPI v2.0
  1583. {$ENDIF}
  1584.     end;
  1585.  
  1586.   LPLINEEXTENSIONID = ^TLINEEXTENSIONID;
  1587.   PLINEEXTENSIONID = ^TLINEEXTENSIONID;
  1588.   TLINEEXTENSIONID =
  1589.     record
  1590.       dwExtensionID0,
  1591.       dwExtensionID1,
  1592.       dwExtensionID2,
  1593.       dwExtensionID3 : DWORD;
  1594.     end;
  1595.  
  1596.   LPLINEFORWARD = ^TLINEFORWARD;
  1597.   PLINEFORWARD = ^TLINEFORWARD;
  1598.   TLINEFORWARD =
  1599.     record
  1600.       dwForwardMode,
  1601.       dwCallerAddressSize,
  1602.       dwCallerAddressOffset,
  1603.       dwDestCountryCode,
  1604.       dwDestAddressSize,
  1605.       dwDestAddressOffset : DWORD;
  1606.     end;
  1607.  
  1608.   LPLINEFORWARDLIST = ^TLINEFORWARDLIST;
  1609.   PLINEFORWARDLIST = ^TLINEFORWARDLIST;
  1610.   TLINEFORWARDLIST =
  1611.     record
  1612.       dwTotalSize,
  1613.       dwNumEntries : DWORD;
  1614.     end;
  1615.  
  1616.   LPLINEGENERATETONE = ^TLINEGENERATETONE;
  1617.   PLINEGENERATETONE = ^TLINEGENERATETONE;
  1618.   TLINEGENERATETONE =
  1619.     record
  1620.       dwFrequency,
  1621.       dwCadenceOn,
  1622.       dwCadenceOff,
  1623.       dwVolume : DWORD;
  1624.     end;
  1625.  
  1626. {$IFDEF Tapi_Ver20}
  1627.   THandleUnion =
  1628.     record
  1629.       case Integer of
  1630.         0 :
  1631.           (hEvent : THandle);
  1632.         1 :
  1633.           (hCompletionPort : THandle);
  1634.     end;
  1635.  
  1636.   LPLINEINITIALIZEEXPARAMS = ^TLINEINITIALIZEEXPARAMS;
  1637.   PLINEINITIALIZEEXPARAMS = ^TLINEINITIALIZEEXPARAMS;
  1638.   TLINEINITIALIZEEXPARAMS =
  1639.     record
  1640.       dwTotalSize,                                    // TAPI v2.0
  1641.       dwNeededSize,                                   // TAPI v2.0
  1642.       dwUsedSize,                                     // TAPI v2.0
  1643.       dwOptions : DWORD;                              // TAPI v2.0
  1644.  
  1645.       Handles : THandleUnion; //!! Union converted to THandleUnion
  1646.  
  1647.       dwCompletionKey : DWORD;                        // TAPI v2.0
  1648.     end;
  1649. {$ENDIF}
  1650.  
  1651.   LPLINELOCATIONENTRY = ^TLINELOCATIONENTRY;
  1652.   PLINELOCATIONENTRY = ^TLINELOCATIONENTRY;
  1653.   TLINELOCATIONENTRY =
  1654.     record
  1655.       dwPermanentLocationID,
  1656.       dwLocationNameSize,
  1657.       dwLocationNameOffset,
  1658.       dwCountryCode,
  1659.       dwCityCodeSize,
  1660.       dwCityCodeOffset,
  1661.       dwPreferredCardID,
  1662.  
  1663.       dwLocalAccessCodeSize,                          // TAPI v1.4
  1664.       dwLocalAccessCodeOffset,                        // TAPI v1.4
  1665.       dwLongDistanceAccessCodeSize,                   // TAPI v1.4
  1666.       dwLongDistanceAccessCodeOffset,                 // TAPI v1.4
  1667.       dwTollPrefixListSize,                           // TAPI v1.4
  1668.       dwTollPrefixListOffset,                         // TAPI v1.4
  1669.       dwCountryID,                                    // TAPI v1.4
  1670.       dwOptions,                                      // TAPI v1.4
  1671.       dwCancelCallWaitingSize,                        // TAPI v1.4
  1672.       dwCancelCallWaitingOffset : DWORD;              // TAPI v1.4
  1673.     end;
  1674.  
  1675.   LPLINEMEDIACONTROLCALLSTATE = ^TLINEMEDIACONTROLCALLSTATE;
  1676.   PLINEMEDIACONTROLCALLSTATE = ^TLINEMEDIACONTROLCALLSTATE;
  1677.   TLINEMEDIACONTROLCALLSTATE =
  1678.     record
  1679.       dwCallStates,
  1680.       dwMediaControl : DWORD;
  1681.     end;
  1682.  
  1683.   LPLINEMEDIACONTROLDIGIT = ^TLINEMEDIACONTROLDIGIT;
  1684.   PLINEMEDIACONTROLDIGIT = ^TLINEMEDIACONTROLDIGIT;
  1685.   TLINEMEDIACONTROLDIGIT =
  1686.     record
  1687.       dwDigit,
  1688.       dwDigitModes,
  1689.       dwMediaControl : DWORD;
  1690.     end;
  1691.  
  1692.   LPLINEMEDIACONTROLMEDIA = ^TLINEMEDIACONTROLMEDIA;
  1693.   PLINEMEDIACONTROLMEDIA = ^TLINEMEDIACONTROLMEDIA;
  1694.   TLINEMEDIACONTROLMEDIA =
  1695.     record
  1696.       dwMediaModes,
  1697.       dwDuration,
  1698.       dwMediaControl : DWORD;
  1699.     end;
  1700.  
  1701.   LPLINEMEDIACONTROLTONE = ^TLINEMEDIACONTROLTONE;
  1702.   PLINEMEDIACONTROLTONE = ^TLINEMEDIACONTROLTONE;
  1703.   TLINEMEDIACONTROLTONE =
  1704.     record
  1705.       dwAppSpecific,
  1706.       dwDuration,
  1707.       dwFrequency1,
  1708.       dwFrequency2,
  1709.       dwFrequency3,
  1710.       dwMediaControl : DWORD;
  1711.     end;
  1712.  
  1713. {$IFDEF Tapi_Ver20}
  1714.   LPLINEMESSAGE = ^TLINEMESSAGE;
  1715.   PLINEMESSAGE = ^TLINEMESSAGE;
  1716.   TLINEMESSAGE =
  1717.     record
  1718.       hDevice,                                        // TAPI v2.0
  1719.       dwMessageID,                                    // TAPI v2.0
  1720.       dwCallbackInstance,                             // TAPI v2.0
  1721.       dwParam1,                                       // TAPI v2.0
  1722.       dwParam2,                                       // TAPI v2.0
  1723.       dwParam3 : DWORD;                               // TAPI v2.0
  1724.     end;
  1725. {$ENDIF}
  1726.  
  1727.   LPLINEMONITORTONE = ^TLINEMONITORTONE;
  1728.   PLINEMONITORTONE = ^TLINEMONITORTONE;
  1729.   TLINEMONITORTONE =
  1730.     record
  1731.       dwAppSpecific,
  1732.       dwDuration,
  1733.       dwFrequency1,
  1734.       dwFrequency2,
  1735.       dwFrequency3 : DWORD;
  1736.     end;
  1737.  
  1738.   LPLINEPROVIDERENTRY = ^TLINEPROVIDERENTRY;
  1739.   PLINEPROVIDERENTRY = ^TLINEPROVIDERENTRY;
  1740.   TLINEPROVIDERENTRY =
  1741.     record
  1742.       dwPermanentProviderID,                          // TAPI v1.4
  1743.       dwProviderFilenameSize,                         // TAPI v1.4
  1744.       dwProviderFilenameOffset : DWORD;               // TAPI v1.4
  1745.     end;
  1746.  
  1747.   LPLINEPROVIDERLIST = ^TLINEPROVIDERLIST;
  1748.   PLINEPROVIDERLIST = ^TLINEPROVIDERLIST;
  1749.   TLINEPROVIDERLIST =
  1750.     record
  1751.       dwTotalSize,                                    // TAPI v1.4
  1752.       dwNeededSize,                                   // TAPI v1.4
  1753.       dwUsedSize,                                     // TAPI v1.4
  1754.       dwNumProviders,                                 // TAPI v1.4
  1755.       dwProviderListSize,                             // TAPI v1.4
  1756.       dwProviderListOffset : DWORD;                   // TAPI v1.4
  1757.     end;
  1758.  
  1759. {$IFDEF Tapi_Ver20}
  1760.   LPLINEPROXYREQUEST = ^TLINEPROXYREQUEST;
  1761.   PLINEPROXYREQUEST = ^TLINEPROXYREQUEST;
  1762.   TLINEPROXYREQUEST =
  1763.     record
  1764.       dwSize,                                         // TAPI v2.0
  1765.       dwClientMachineNameSize,                        // TAPI v2.0
  1766.       dwClientMachineNameOffset,                      // TAPI v2.0
  1767.       dwClientUserNameSize,                           // TAPI v2.0
  1768.       dwClientUserNameOffset,                         // TAPI v2.0
  1769.       dwClientAppAPIVersion,                          // TAPI v2.0
  1770.       dwRequestType : DWORD;                          // TAPI v2.0
  1771.  
  1772.       case Integer of
  1773.         0 :
  1774.           (
  1775.             SetAgentGroup :
  1776.               record
  1777.                 dwAddressID : DWORD;                  // TAPI v2.0
  1778.                 GroupList : TLINEAGENTGROUPLIST;      // TAPI v2.0
  1779.               end;
  1780.           );
  1781.         1 :
  1782.           (
  1783.             SetAgentState :
  1784.               record
  1785.                 dwAddressID,                          // TAPI v2.0
  1786.                 dwAgentState,                         // TAPI v2.0
  1787.                 dwNextAgentState : DWORD;             // TAPI v2.0
  1788.               end;
  1789.           );
  1790.         2 :
  1791.           (
  1792.             SetAgentActivity :
  1793.               record
  1794.                 dwAddressID : DWORD;                  // TAPI v2.0
  1795.                 dwActivityID : DWORD;                 // TAPI v2.0
  1796.               end;
  1797.           );
  1798.         3 :
  1799.           (
  1800.             GetAgentCaps :
  1801.               record
  1802.                 dwAddressID : DWORD;                  // TAPI v2.0
  1803.                 AgentCaps : TLINEAGENTCAPS;           // TAPI v2.0
  1804.               end;
  1805.           );
  1806.         4 :
  1807.           (
  1808.             GetAgentStatus :
  1809.               record
  1810.                 dwAddressID : DWORD;                  // TAPI v2.0
  1811.                 AgentStatus : TLINEAGENTSTATUS;       // TAPI v2.0
  1812.               end;
  1813.           );
  1814.         5 :
  1815.           (
  1816.             AgentSpecific :
  1817.               record
  1818.                 dwAddressID,                          // TAPI v2.0
  1819.                 dwAgentExtensionIDIndex,              // TAPI v2.0
  1820.                 dwSize : DWORD;                       // TAPI v2.0
  1821.                 Params : array[0..0] of Byte;         // TAPI v2.0
  1822.               end;
  1823.           );
  1824.         6 :
  1825.           (
  1826.             GetAgentActivityList :
  1827.               record
  1828.                 dwAddressID : DWORD;                  // TAPI v2.0
  1829.                 ActivityList : TLINEAGENTACTIVITYLIST;// TAPI v2.0
  1830.               end;
  1831.           );
  1832.         7 :
  1833.           (
  1834.             GetAgentGroupList :
  1835.               record
  1836.                 dwAddressID : DWORD;                  // TAPI v2.0
  1837.                 GroupList : TLINEAGENTGROUPLIST;      // TAPI v2.0
  1838.               end;
  1839.           );
  1840.     end;
  1841. {$ENDIF}
  1842.  
  1843.  
  1844.   LPLINEREQMAKECALL = ^TLINEREQMAKECALL;
  1845.   PLINEREQMAKECALL = ^TLINEREQMAKECALL;
  1846.   TLINEREQMAKECALL =
  1847.     record
  1848.       szDestAddress : array[0..TAPIMAXDESTADDRESSSIZE - 1] of Char;
  1849.       szAppName     : array[0..TAPIMAXAPPNAMESIZE - 1] of Char;
  1850.       szCalledParty : array[0..TAPIMAXCALLEDPARTYSIZE - 1] of Char;
  1851.       szComment     : array[0..TAPIMAXCOMMENTSIZE - 1] of Char;
  1852.     end;
  1853.  
  1854. {$IFDEF Tapi_Ver20}
  1855.   LPLINEREQMAKECALLW = ^TLINEREQMAKECALLW;
  1856.   PLINEREQMAKECALLW = ^TLINEREQMAKECALLW;
  1857.   TLINEREQMAKECALLW =
  1858.     record
  1859.       szDestAddress : array[0..TAPIMAXDESTADDRESSSIZE - 1] of WideChar;
  1860.       szAppName     : array[0..TAPIMAXAPPNAMESIZE - 1] of WideChar;
  1861.       szCalledParty : array[0..TAPIMAXCALLEDPARTYSIZE - 1] of WideChar;
  1862.       szComment     : array[0..TAPIMAXCOMMENTSIZE - 1] of WideChar;
  1863.     end;
  1864. {$ENDIF}
  1865.  
  1866.  
  1867.   LPLINEREQMEDIACALL = ^TLINEREQMEDIACALL;
  1868.   PLINEREQMEDIACALL = ^TLINEREQMEDIACALL;
  1869.   TLINEREQMEDIACALL =
  1870.     record
  1871.       hWnd          : HWND;
  1872.       wRequestID    : WPARAM;
  1873.       szDeviceClass : array[0..TAPIMAXDEVICECLASSSIZE - 1] of Char;
  1874.       ucDeviceID    : array[0..TAPIMAXDEVICEIDSIZE - 1] of Byte;
  1875.       dwSize,
  1876.       dwSecure      : DWORD;
  1877.       szDestAddress : array[0..TAPIMAXDESTADDRESSSIZE] of Char;
  1878.       szAppName     : array[0..TAPIMAXAPPNAMESIZE] of Char;
  1879.       szCalledParty : array[0..TAPIMAXCALLEDPARTYSIZE] of Char;
  1880.       szComment     : array[0..TAPIMAXCOMMENTSIZE] of Char;
  1881.     end;
  1882.  
  1883. {$IFDEF Tapi_Ver20}
  1884.   LPLINEREQMEDIACALLW = ^TLINEREQMEDIACALLW;
  1885.   PLINEREQMEDIACALLW = ^TLINEREQMEDIACALLW;
  1886.   TLINEREQMEDIACALLW =
  1887.     record
  1888.       hWnd          : HWND;
  1889.       wRequestID    : WPARAM;
  1890.       szDeviceClass : array[0..TAPIMAXDEVICECLASSSIZE - 1] of WideChar;
  1891.       ucDeviceID    : array[0..TAPIMAXDEVICEIDSIZE - 1] of Byte;
  1892.       dwSize,
  1893.       dwSecure      : DWORD;
  1894.       szDestAddress : array[0..TAPIMAXDESTADDRESSSIZE] of WideChar;
  1895.       szAppName     : array[0..TAPIMAXAPPNAMESIZE] of WideChar;
  1896.       szCalledParty : array[0..TAPIMAXCALLEDPARTYSIZE] of WideChar;
  1897.       szComment     : array[0..TAPIMAXCOMMENTSIZE] of WideChar;
  1898.     end;
  1899. {$ENDIF}
  1900.  
  1901.  
  1902.   LPLINETERMCAPS = ^TLINETERMCAPS;
  1903.   PLINETERMCAPS = ^TLINETERMCAPS;
  1904.   TLINETERMCAPS =
  1905.     record
  1906.       dwTermDev,
  1907.       dwTermModes,
  1908.       dwTermSharing : DWORD;
  1909.     end;
  1910.  
  1911.   LPLINETRANSLATECAPS = ^TLINETRANSLATECAPS;
  1912.   PLINETRANSLATECAPS = ^TLINETRANSLATECAPS;
  1913.   TLINETRANSLATECAPS =
  1914.     record
  1915.       dwTotalSize,
  1916.       dwNeededSize,
  1917.       dwUsedSize,
  1918.       dwNumLocations,
  1919.       dwLocationListSize,
  1920.       dwLocationListOffset,
  1921.       dwCurrentLocationID,
  1922.       dwNumCards,
  1923.       dwCardListSize,
  1924.       dwCardListOffset,
  1925.       dwCurrentPreferredCardID : DWORD;
  1926.     end;
  1927.  
  1928.   LPLINETRANSLATEOUTPUT = ^TLINETRANSLATEOUTPUT;
  1929.   PLINETRANSLATEOUTPUT = ^TLINETRANSLATEOUTPUT;
  1930.   TLINETRANSLATEOUTPUT =
  1931.     record
  1932.       dwTotalSize,
  1933.       dwNeededSize,
  1934.       dwUsedSize,
  1935.       dwDialableStringSize,
  1936.       dwDialableStringOffset,
  1937.       dwDisplayableStringSize,
  1938.       dwDisplayableStringOffset,
  1939.       dwCurrentCountry,
  1940.       dwDestCountry,
  1941.       dwTranslateResults : DWORD;
  1942.     end;
  1943.  
  1944.   LPPHONEBUTTONINFO = ^TPHONEBUTTONINFO;
  1945.   PPHONEBUTTONINFO = ^TPHONEBUTTONINFO;
  1946.   TPHONEBUTTONINFO =
  1947.     record
  1948.       dwTotalSize,
  1949.       dwNeededSize,
  1950.       dwUsedSize,
  1951.       dwButtonMode,
  1952.       dwButtonFunction,
  1953.       dwButtonTextSize,
  1954.       dwButtonTextOffset,
  1955.       dwDevSpecificSize,
  1956.       dwDevSpecificOffset,
  1957.  
  1958.       dwButtonState : DWORD;                             // TAPI v1.4
  1959.     end;
  1960.  
  1961.   LPPHONECAPS = ^TPHONECAPS;
  1962.   PPHONECAPS = ^TPHONECAPS;
  1963.   TPHONECAPS =
  1964.     record
  1965.       dwTotalSize,
  1966.       dwNeededSize,
  1967.       dwUsedSize,
  1968.       dwProviderInfoSize,
  1969.       dwProviderInfoOffset,
  1970.       dwPhoneInfoSize,
  1971.       dwPhoneInfoOffset,
  1972.       dwPermanentPhoneID,
  1973.       dwPhoneNameSize,
  1974.       dwPhoneNameOffset,
  1975.       dwStringFormat,
  1976.       dwPhoneStates,
  1977.       dwHookSwitchDevs,
  1978.       dwHandsetHookSwitchModes,
  1979.       dwSpeakerHookSwitchModes,
  1980.       dwHeadsetHookSwitchModes,
  1981.       dwVolumeFlags,
  1982.       dwGainFlags,
  1983.       dwDisplayNumRows,
  1984.       dwDisplayNumColumns,
  1985.       dwNumRingModes,
  1986.       dwNumButtonLamps,
  1987.       dwButtonModesSize,
  1988.       dwButtonModesOffset,
  1989.       dwButtonFunctionsSize,
  1990.       dwButtonFunctionsOffset,
  1991.       dwLampModesSize,
  1992.       dwLampModesOffset,
  1993.       dwNumSetData,
  1994.       dwSetDataSize,
  1995.       dwSetDataOffset,
  1996.       dwNumGetData,
  1997.       dwGetDataSize,
  1998.       dwGetDataOffset,
  1999.       dwDevSpecificSize,
  2000.       dwDevSpecificOffset : DWORD;
  2001.  
  2002. {$IFDEF Tapi_Ver20}
  2003.       dwDeviceClassesSize,                            // TAPI v2.0
  2004.       dwDeviceClassesOffset,                          // TAPI v2.0
  2005.       dwPhoneFeatures,                                // TAPI v2.0
  2006.       dwSettableHandsetHookSwitchModes,               // TAPI v2.0
  2007.       dwSettableSpeakerHookSwitchModes,               // TAPI v2.0
  2008.       dwSettableHeadsetHookSwitchModes,               // TAPI v2.0
  2009.       dwMonitoredHandsetHookSwitchModes,              // TAPI v2.0
  2010.       dwMonitoredSpeakerHookSwitchModes,              // TAPI v2.0
  2011.       dwMonitoredHeadsetHookSwitchModes : DWORD;      // TAPI v2.0
  2012. {$ENDIF}
  2013.     end;
  2014.  
  2015.   LPPHONEEXTENSIONID = ^TPHONEEXTENSIONID;
  2016.   PPHONEEXTENSIONID = ^TPHONEEXTENSIONID;
  2017.   TPHONEEXTENSIONID =
  2018.     record
  2019.       dwExtensionID0,
  2020.       dwExtensionID1,
  2021.       dwExtensionID2,
  2022.       dwExtensionID3 : DWORD;
  2023.     end;
  2024.  
  2025. {$IFDEF Tapi_Ver20}
  2026.   LPPHONEINITIALIZEEXPARAMS = ^TPHONEINITIALIZEEXPARAMS;
  2027.   PPHONEINITIALIZEEXPARAMS = ^TPHONEINITIALIZEEXPARAMS;
  2028.   TPHONEINITIALIZEEXPARAMS =
  2029.     record
  2030.       dwTotalSize,                                    // TAPI v2.0
  2031.       dwNeededSize,                                   // TAPI v2.0
  2032.       dwUsedSize,                                     // TAPI v2.0
  2033.       dwOptions : DWORD;                              // TAPI v2.0
  2034.  
  2035.       Handles : THandleUnion; //!! Union converted to THandleUnion
  2036.  
  2037.       dwCompletionKey : DWORD;                        // TAPI v2.0
  2038.     end;
  2039.  
  2040.   LPPHONEMESSAGE = ^TPHONEMESSAGE;
  2041.   PPHONEMESSAGE = ^TPHONEMESSAGE;
  2042.   TPHONEMESSAGE =
  2043.     record
  2044.       hDevice,                                        // TAPI v2.0
  2045.       dwMessageID,                                    // TAPI v2.0
  2046.       dwCallbackInstance,                             // TAPI v2.0
  2047.       dwParam1,                                       // TAPI v2.0
  2048.       dwParam2,                                       // TAPI v2.0
  2049.       dwParam3 : DWORD;                               // TAPI v2.0
  2050.     end;
  2051. {$ENDIF}
  2052.  
  2053.   LPPHONESTATUS = ^TPHONESTATUS;
  2054.   PPHONESTATUS = ^TPHONESTATUS;
  2055.   TPHONESTATUS =
  2056.     record
  2057.       dwTotalSize,
  2058.       dwNeededSize,
  2059.       dwUsedSize,
  2060.       dwStatusFlags,
  2061.       dwNumOwners,
  2062.       dwNumMonitors,
  2063.       dwRingMode,
  2064.       dwRingVolume,
  2065.       dwHandsetHookSwitchMode,
  2066.       dwHandsetVolume,
  2067.       dwHandsetGain,
  2068.       dwSpeakerHookSwitchMode,
  2069.       dwSpeakerVolume,
  2070.       dwSpeakerGain,
  2071.       dwHeadsetHookSwitchMode,
  2072.       dwHeadsetVolume,
  2073.       dwHeadsetGain,
  2074.       dwDisplaySize,
  2075.       dwDisplayOffset,
  2076.       dwLampModesSize,
  2077.       dwLampModesOffset,
  2078.       dwOwnerNameSize,
  2079.       dwOwnerNameOffset,
  2080.       dwDevSpecificSize,
  2081.       dwDevSpecificOffset : DWORD;
  2082.  
  2083. {$IFDEF Tapi_Ver20}
  2084.       dwPhoneFeatures : DWORD;                        // TAPI v2.0
  2085. {$ENDIF}
  2086.     end;
  2087.  
  2088.   LPVARSTRING = ^TVARSTRING;
  2089.   PVARSTRING = ^TVARSTRING;
  2090.   TVARSTRING =
  2091.     record
  2092.       dwTotalSize,
  2093.       dwNeededSize,
  2094.       dwUsedSize,
  2095.       dwStringFormat,
  2096.       dwStringSize,
  2097.       dwStringOffset : DWORD;
  2098.     end;
  2099.  
  2100.  
  2101. function lineAccept(
  2102.     hCall : HCALL;
  2103.     lpsUserUserInfo : LPCSTR;
  2104.     dwSize : DWORD) : LONG; stdcall;
  2105.  
  2106. function lineAddProvider(                                                // TAPI v1.4
  2107.     lpszProviderFilename : LPCSTR;
  2108.     hwndOwner : HWND;
  2109.     lpdwPermanentProviderID : LPDWORD) : LONG; stdcall;
  2110.  
  2111. {$IFDEF Win32}
  2112. function lineAddProviderA(                                               // TAPI v1.4
  2113.     lpszProviderFilename : LPCSTR;
  2114.     hwndOwner : HWND;
  2115.     lpdwPermanentProviderID : LPDWORD) : LONG; stdcall;
  2116.  
  2117. function lineAddProviderW(
  2118.     lpszProviderFilename : LPCWSTR;
  2119.     hwndOwner : HWND;
  2120.     lpdwPermanentProviderID : LPDWORD) : LONG; stdcall;
  2121. {$ENDIF}
  2122.  
  2123. function lineAddToConference(
  2124.     hConfCall : HCALL;
  2125.     hConsultCall : HCALL) : LONG; stdcall;
  2126.  
  2127. {$IFDEF Tapi_Ver20}
  2128. function lineAgentSpecific(                                              // TAPI v2.0
  2129.     hLine : HLINE;
  2130.     dwAddressID : DWORD;
  2131.     dwAgentExtensionIDIndex : DWORD;
  2132.     lpParams : LPVOID;
  2133.     dwSize : DWORD) : LONG; stdcall;
  2134. {$ENDIF}
  2135.  
  2136. function lineAnswer(
  2137.     hCall : HCALL;
  2138.     lpsUserUserInfo : LPCSTR;
  2139.     dwSize : DWORD) : LONG; stdcall;
  2140.  
  2141. function lineBlindTransfer(
  2142.     hCall : HCALL;
  2143.     lpszDestAddress : LPCSTR;
  2144.     dwCountryCode : DWORD) : LONG; stdcall;
  2145.  
  2146. {$IFDEF Win32}
  2147. function lineBlindTransferA(
  2148.     hCall : HCALL;
  2149.     lpszDestAddress : LPCSTR;
  2150.     dwCountryCode : DWORD) : LONG; stdcall;
  2151.  
  2152. function lineBlindTransferW(
  2153.     hCall : HCALL;
  2154.     lpszDestAddressW : LPCWSTR;
  2155.     dwCountryCode : DWORD) : LONG; stdcall;
  2156. {$ENDIF}
  2157.  
  2158. function lineClose(
  2159.     hLine : HLINE) : LONG; stdcall;
  2160.  
  2161. function lineCompleteCall(
  2162.     hCall : HCALL;
  2163.     lpdwCompletionID : LPDWORD;
  2164.     dwCompletionMode : DWORD;
  2165.     dwMessageID : DWORD) : LONG; stdcall;
  2166.  
  2167. function lineCompleteTransfer(
  2168.     hCall : HCALL;
  2169.     hConsultCall : HCALL;
  2170.     lphConfCall : LPHCALL;
  2171.     dwTransferMode : DWORD) : LONG; stdcall;
  2172.  
  2173. function lineConfigDialog(
  2174.     dwDeviceID : DWORD;
  2175.     hwndOwner : HWND;
  2176.     lpszDeviceClass : LPCSTR) : LONG; stdcall;
  2177.  
  2178. {$IFDEF Win32}
  2179. function lineConfigDialogA(
  2180.     dwDeviceID : DWORD;
  2181.     hwndOwner : HWND;
  2182.     lpszDeviceClass : LPCSTR) : LONG; stdcall;
  2183.  
  2184. function lineConfigDialogW(
  2185.     dwDeviceID : DWORD;
  2186.     hwndOwner : HWND;
  2187.     lpszDeviceClass : LPCWSTR) : LONG; stdcall;
  2188. {$ENDIF}
  2189.  
  2190. function lineConfigDialogEdit(                                           // TAPI v1.4
  2191.     dwDeviceID : DWORD;
  2192.     hwndOwner : HWND;
  2193.     lpszDeviceClass : LPCSTR;
  2194.     const lpDeviceConfigIn : LPVOID;
  2195.     dwSize : DWORD;
  2196.     lpDeviceConfigOut : LPVARSTRING) : LONG; stdcall;
  2197.  
  2198. {$IFDEF Win32}
  2199. function lineConfigDialogEditA(                                          // TAPI v1.4
  2200.     dwDeviceID : DWORD;
  2201.     hwndOwner : HWND;
  2202.     lpszDeviceClass : LPCSTR;
  2203.     const lpDeviceConfigIn : LPVOID;
  2204.     dwSize : DWORD;
  2205.     lpDeviceConfigOut : LPVARSTRING) : LONG; stdcall;
  2206.  
  2207. function lineConfigDialogEditW(
  2208.     dwDeviceID : DWORD;
  2209.     hwndOwner : HWND;
  2210.     lpszDeviceClass : LPCWSTR;
  2211.     const lpDeviceConfigIn : LPVOID;
  2212.     dwSize : DWORD;
  2213.     lpDeviceConfigOut : LPVARSTRING) : LONG; stdcall;
  2214. {$ENDIF}
  2215.  
  2216. function lineConfigProvider(                                             // TAPI v1.4
  2217.     hwndOwner : HWND;
  2218.     dwPermanentProviderID : DWORD) : LONG; stdcall;
  2219.  
  2220. function lineDeallocateCall(
  2221.     hCall : HCALL) : LONG; stdcall;
  2222.  
  2223. function lineDevSpecific(
  2224.     hLine : HLINE;
  2225.     dwAddressID : DWORD;
  2226.     hCall : HCALL;
  2227.     lpParams : LPVOID;
  2228.     dwSize : DWORD) : LONG; stdcall;
  2229.  
  2230. function lineDevSpecificFeature(
  2231.     hLine : HLINE;
  2232.     dwFeature : DWORD;
  2233.     lpParams : LPVOID;
  2234.     dwSize : DWORD) : LONG; stdcall;
  2235.  
  2236. function lineDial(
  2237.     hCall : HCALL;
  2238.     lpszDestAddress : LPCSTR;
  2239.     dwCountryCode : DWORD) : LONG; stdcall;
  2240.  
  2241. {$IFDEF Win32}
  2242. function lineDialA(
  2243.     hCall : HCALL;
  2244.     lpszDestAddress : LPCSTR;
  2245.     dwCountryCode : DWORD) : LONG; stdcall;
  2246.  
  2247. function lineDialW(
  2248.     hCall : HCALL;
  2249.     lpszDestAddress : LPCWSTR;
  2250.     dwCountryCode : DWORD) : LONG; stdcall;
  2251. {$ENDIF}
  2252.  
  2253. function lineDrop(
  2254.     hCall : HCALL;
  2255.     lpsUserUserInfo : LPCSTR;
  2256.     dwSize : DWORD) : LONG; stdcall;
  2257.  
  2258. function lineForward(
  2259.     hLine : HLINE;
  2260.     bAllAddresses : DWORD;
  2261.     dwAddressID : DWORD;
  2262.     const lpForwardList : LPLINEFORWARDLIST;
  2263.     dwNumRingsNoAnswer : DWORD;
  2264.     lphConsultCall : LPHCALL;
  2265.     const lpCallParams : LPLINECALLPARAMS) : LONG; stdcall;
  2266.  
  2267. {$IFDEF Win32}
  2268. function lineForwardA(
  2269.     hLine : HLINE;
  2270.     bAllAddresses : DWORD;
  2271.     dwAddressID : DWORD;
  2272.     const lpForwardList : LPLINEFORWARDLIST;
  2273.     dwNumRingsNoAnswer : DWORD;
  2274.     lphConsultCall : LPHCALL;
  2275.     const lpCallParams : LPLINECALLPARAMS) : LONG; stdcall;
  2276.  
  2277. function lineForwardW(
  2278.     hLine : HLINE;
  2279.     bAllAddresses : DWORD;
  2280.     dwAddressID : DWORD;
  2281.     const lpForwardList : LPLINEFORWARDLIST;
  2282.     dwNumRingsNoAnswer : DWORD;
  2283.     lphConsultCall : LPHCALL;
  2284.     const lpCallParams : LPLINECALLPARAMS) : LONG; stdcall;
  2285. {$ENDIF}
  2286.  
  2287. function lineGatherDigits(
  2288.     hCall : HCALL;
  2289.     dwDigitModes : DWORD;
  2290.     lpsDigits : LPSTR;
  2291.     dwNumDigits : DWORD;
  2292.     lpszTerminationDigits : LPCSTR;
  2293.     dwFirstDigitTimeout : DWORD;
  2294.     dwInterDigitTimeout : DWORD) : LONG; stdcall;
  2295.  
  2296. {$IFDEF Win32}
  2297. function lineGatherDigitsA(
  2298.     hCall : HCALL;
  2299.     dwDigitModes : DWORD;
  2300.     lpsDigits : LPSTR;
  2301.     dwNumDigits : DWORD;
  2302.     lpszTerminationDigits : LPCSTR;
  2303.     dwFirstDigitTimeout : DWORD;
  2304.     dwInterDigitTimeout : DWORD) : LONG; stdcall;
  2305.  
  2306. function lineGatherDigitsW(
  2307.     hCall : HCALL;
  2308.     dwDigitModes : DWORD;
  2309.     lpsDigits : LPWSTR;
  2310.     dwNumDigits : DWORD;
  2311.     lpszTerminationDigits : LPCWSTR;
  2312.     dwFirstDigitTimeout : DWORD;
  2313.     dwInterDigitTimeout : DWORD) : LONG; stdcall;
  2314. {$ENDIF}
  2315.  
  2316. function lineGenerateDigits(
  2317.     hCall : HCALL;
  2318.     dwDigitMode : DWORD;
  2319.     lpszDigits : LPCSTR;
  2320.     dwDuration : DWORD) : LONG; stdcall;
  2321.  
  2322. {$IFDEF Win32}
  2323. function lineGenerateDigitsA(
  2324.     hCall : HCALL;
  2325.     dwDigitMode : DWORD;
  2326.     lpszDigits : LPCSTR;
  2327.     dwDuration : DWORD) : LONG; stdcall;
  2328.  
  2329. function lineGenerateDigitsW(
  2330.     hCall : HCALL;
  2331.     dwDigitMode : DWORD;
  2332.     lpszDigits : LPCWSTR;
  2333.     dwDuration : DWORD) : LONG; stdcall;
  2334. {$ENDIF}
  2335.  
  2336. function lineGenerateTone(
  2337.     hCall : HCALL;
  2338.     dwToneMode : DWORD;
  2339.     dwDuration : DWORD;
  2340.     dwNumTones : DWORD;
  2341.     const lpTones : LPLINEGENERATETONE) : LONG; stdcall;
  2342.  
  2343. function lineGetAddressCaps(
  2344.     hLineApp : HLINEAPP;
  2345.     dwDeviceID : DWORD;
  2346.     dwAddressID : DWORD;
  2347.     dwAPIVersion : DWORD;
  2348.     dwExtVersion : DWORD;
  2349.     lpAddressCaps : LPLINEADDRESSCAPS) : LONG; stdcall;
  2350.  
  2351. {$IFDEF Win32}
  2352. function lineGetAddressCapsA(
  2353.     hLineApp : HLINEAPP;
  2354.     dwDeviceID : DWORD;
  2355.     dwAddressID : DWORD;
  2356.     dwAPIVersion : DWORD;
  2357.     dwExtVersion : DWORD;
  2358.     lpAddressCaps : LPLINEADDRESSCAPS) : LONG; stdcall;
  2359.  
  2360. function lineGetAddressCapsW(
  2361.     hLineApp : HLINEAPP;
  2362.     dwDeviceID : DWORD;
  2363.     dwAddressID : DWORD;
  2364.     dwAPIVersion : DWORD;
  2365.     dwExtVersion : DWORD;
  2366.     lpAddressCaps : LPLINEADDRESSCAPS) : LONG; stdcall;
  2367. {$ENDIF}
  2368.  
  2369. function lineGetAddressID(
  2370.     hLine : HLINE;
  2371.     lpdwAddressID : LPDWORD;
  2372.     dwAddressMode : DWORD;
  2373.     lpsAddress : LPCSTR;
  2374.     dwSize : DWORD) : LONG; stdcall;
  2375.  
  2376. {$IFDEF Win32}
  2377. function lineGetAddressIDA(
  2378.     hLine : HLINE;
  2379.     lpdwAddressID : LPDWORD;
  2380.     dwAddressMode : DWORD;
  2381.     lpsAddress : LPCSTR;
  2382.     dwSize : DWORD) : LONG; stdcall;
  2383.  
  2384. function lineGetAddressIDW(
  2385.     hLine : HLINE;
  2386.     lpdwAddressID : LPDWORD;
  2387.     dwAddressMode : DWORD;
  2388.     lpsAddress : LPCWSTR;
  2389.     dwSize : DWORD) : LONG; stdcall;
  2390. {$ENDIF}
  2391.  
  2392. function lineGetAddressStatus(
  2393.     hLine : HLINE;
  2394.     dwAddressID : DWORD;
  2395.     lpAddressStatus : LPLINEADDRESSSTATUS) : LONG; stdcall;
  2396.  
  2397. {$IFDEF Win32}
  2398. function lineGetAddressStatusA(
  2399.     hLine : HLINE;
  2400.     dwAddressID : DWORD;
  2401.     lpAddressStatus : LPLINEADDRESSSTATUS) : LONG; stdcall;
  2402.  
  2403. function lineGetAddressStatusW(
  2404.     hLine : HLINE;
  2405.     dwAddressID : DWORD;
  2406.     lpAddressStatus : LPLINEADDRESSSTATUS) : LONG; stdcall;
  2407. {$ENDIF}
  2408.  
  2409. {$IFDEF Tapi_Ver20}
  2410. {$IFDEF Win32}
  2411. function lineGetAgentActivityListA(                                       // TAPI v2.0
  2412.     hLine : HLINE;
  2413.     dwAddressID : DWORD;
  2414.     lpAgentActivityList : LPLINEAGENTACTIVITYLIST) : LONG; stdcall;
  2415. {$ENDIF}
  2416.  
  2417. function lineGetAgentActivityList(                                       // TAPI v2.0
  2418.     hLine : HLINE;
  2419.     dwAddressID : DWORD;
  2420.     lpAgentActivityList : LPLINEAGENTACTIVITYLIST) : LONG; stdcall;
  2421.  
  2422. {$IFDEF Win32}
  2423. function lineGetAgentActivityListW(                                       // TAPI v2.0
  2424.     hLine : HLINE;
  2425.     dwAddressID : DWORD;
  2426.     lpAgentActivityList : LPLINEAGENTACTIVITYLIST) : LONG; stdcall;
  2427.  
  2428. function lineGetAgentCapsA(                                               // TAPI v2.0
  2429.     hLineApp : HLINEAPP;
  2430.     dwDeviceID : DWORD;
  2431.     dwAddressID : DWORD;
  2432.     dwAppAPIVersion : DWORD;
  2433.     lpAgentCaps : LPLINEAGENTCAPS) : LONG; stdcall;
  2434. {$ENDIF}
  2435.  
  2436. function lineGetAgentCaps(                                               // TAPI v2.0
  2437.     hLineApp : HLINEAPP;
  2438.     dwDeviceID : DWORD;
  2439.     dwAddressID : DWORD;
  2440.     dwAppAPIVersion : DWORD;
  2441.     lpAgentCaps : LPLINEAGENTCAPS) : LONG; stdcall;
  2442.  
  2443. {$IFDEF Win32}
  2444. function lineGetAgentCapsW(                                               // TAPI v2.0
  2445.     hLineApp : HLINEAPP;
  2446.     dwDeviceID : DWORD;
  2447.     dwAddressID : DWORD;
  2448.     dwAppAPIVersion : DWORD;
  2449.     lpAgentCaps : LPLINEAGENTCAPS) : LONG; stdcall;
  2450.  
  2451. function lineGetAgentGroupListA(                                          // TAPI v2.0
  2452.     hLine : HLINE;
  2453.     dwAddressID : DWORD;
  2454.     lpAgentGroupList : LPLINEAGENTGROUPLIST) : LONG; stdcall;
  2455. {$ENDIF}
  2456.  
  2457. function lineGetAgentGroupList(                                          // TAPI v2.0
  2458.     hLine : HLINE;
  2459.     dwAddressID : DWORD;
  2460.     lpAgentGroupList : LPLINEAGENTGROUPLIST) : LONG; stdcall;
  2461.  
  2462. {$IFDEF Win32}
  2463. function lineGetAgentGroupListW(                                          // TAPI v2.0
  2464.     hLine : HLINE;
  2465.     dwAddressID : DWORD;
  2466.     lpAgentGroupList : LPLINEAGENTGROUPLIST) : LONG; stdcall;
  2467.  
  2468. function lineGetAgentStatusA(                                             // TAPI v2.0
  2469.     hLine : HLINE;
  2470.     dwAddressID : DWORD;
  2471.     lpAgentStatus : LPLINEAGENTSTATUS) : LONG; stdcall;
  2472. {$ENDIF}
  2473.  
  2474. function lineGetAgentStatus(                                             // TAPI v2.0
  2475.     hLine : HLINE;
  2476.     dwAddressID : DWORD;
  2477.     lpAgentStatus : LPLINEAGENTSTATUS) : LONG; stdcall;
  2478.  
  2479. {$IFDEF Win32}
  2480. function lineGetAgentStatusW(                                             // TAPI v2.0
  2481.     hLine : HLINE;
  2482.     dwAddressID : DWORD;
  2483.     lpAgentStatus : LPLINEAGENTSTATUS) : LONG; stdcall;
  2484. {$ENDIF}
  2485.  
  2486. {$ENDIF}
  2487.  
  2488. function lineGetAppPriority(                                             // TAPI v1.4 :
  2489.     lpszAppFilename : LPCSTR;
  2490.     dwMediaMode : DWORD;
  2491.     lpExtensionID : LPLINEEXTENSIONID;
  2492.     dwRequestMode : DWORD;
  2493.     lpExtensionName : LPVARSTRING;
  2494.     lpdwPriority : LPDWORD) : LONG; stdcall;
  2495.  
  2496. {$IFDEF Win32}
  2497. function lineGetAppPriorityA(                                            // TAPI v1.4
  2498.     lpszAppFilename : LPCSTR;
  2499.     dwMediaMode : DWORD;
  2500.     lpExtensionID : LPLINEEXTENSIONID;
  2501.     dwRequestMode : DWORD;
  2502.     lpExtensionName : LPVARSTRING;
  2503.     lpdwPriority : LPDWORD) : LONG; stdcall;
  2504.  
  2505. function lineGetAppPriorityW(                                             // TAPI v1.4
  2506.     lpszAppFilename : LPCWSTR;
  2507.     dwMediaMode : DWORD;
  2508.     lpExtensionID : LPLINEEXTENSIONID;
  2509.     dwRequestMode : DWORD;
  2510.     lpExtensionName : LPVARSTRING;
  2511.     lpdwPriority : LPDWORD) : LONG; stdcall;
  2512. {$ENDIF}
  2513.  
  2514. function lineGetCallInfo(
  2515.     hCall : HCALL;
  2516.     lpCallInfo : LPLINECALLINFO) : LONG; stdcall;
  2517.  
  2518. {$IFDEF Win32}
  2519. function lineGetCallInfoA(
  2520.     hCall : HCALL;
  2521.     lpCallInfo : LPLINECALLINFO) : LONG; stdcall;
  2522.  
  2523. function lineGetCallInfoW(
  2524.     hCall : HCALL;
  2525.     lpCallInfo : LPLINECALLINFO) : LONG; stdcall;
  2526. {$ENDIF}
  2527.  
  2528. function lineGetCallStatus(
  2529.     hCall : HCALL;
  2530.     lpCallStatus : LPLINECALLSTATUS) : LONG; stdcall;
  2531.  
  2532. function lineGetConfRelatedCalls(
  2533.     hCall : HCALL;
  2534.     lpCallList : LPLINECALLLIST) : LONG; stdcall;
  2535.  
  2536. function lineGetCountry(                                                 // TAPI v1.4
  2537.     dwCountryID : DWORD;
  2538.     dwAPIVersion : DWORD;
  2539.     lpLineCountryList : LPLINECOUNTRYLIST) : LONG; stdcall;
  2540.  
  2541. {$IFDEF Win32}
  2542. function lineGetCountryA(                                                 // TAPI v1.4
  2543.     dwCountryID : DWORD;
  2544.     dwAPIVersion : DWORD;
  2545.     lpLineCountryList : LPLINECOUNTRYLIST) : LONG; stdcall;
  2546.  
  2547. function lineGetCountryW(                                                // TAPI v1.4
  2548.     dwCountryID : DWORD;
  2549.     dwAPIVersion : DWORD;
  2550.     lpLineCountryList : LPLINECOUNTRYLIST) : LONG; stdcall;
  2551. {$ENDIF}
  2552.  
  2553. function lineGetDevCaps(
  2554.     hLineApp : HLINEAPP;
  2555.     dwDeviceID : DWORD;
  2556.     dwAPIVersion : DWORD;
  2557.     dwExtVersion : DWORD;
  2558.     lpLineDevCaps : LPLINEDEVCAPS) : LONG; stdcall;
  2559.  
  2560. {$IFDEF Win32}
  2561. function lineGetDevCapsA(
  2562.     hLineApp : HLINEAPP;
  2563.     dwDeviceID : DWORD;
  2564.     dwAPIVersion : DWORD;
  2565.     dwExtVersion : DWORD;
  2566.     lpLineDevCaps : LPLINEDEVCAPS) : LONG; stdcall;
  2567.  
  2568. function lineGetDevCapsW(
  2569.     hLineApp : HLINEAPP;
  2570.     dwDeviceID : DWORD;
  2571.     dwAPIVersion : DWORD;
  2572.     dwExtVersion : DWORD;
  2573.     lpLineDevCaps : LPLINEDEVCAPS) : LONG; stdcall;
  2574. {$ENDIF}
  2575.  
  2576. function lineGetDevConfig(
  2577.     dwDeviceID : DWORD;
  2578.     lpDeviceConfig : LPVARSTRING;
  2579.     lpszDeviceClass : LPCSTR) : LONG; stdcall;
  2580.  
  2581. {$IFDEF Win32}
  2582. function lineGetDevConfigA(
  2583.     dwDeviceID : DWORD;
  2584.     lpDeviceConfig : LPVARSTRING;
  2585.     lpszDeviceClass : LPCSTR) : LONG; stdcall;
  2586.  
  2587. function lineGetDevConfigW(
  2588.     dwDeviceID : DWORD;
  2589.     lpDeviceConfig : LPVARSTRING;
  2590.     lpszDeviceClass : LPCWSTR) : LONG; stdcall;
  2591. {$ENDIF}
  2592.  
  2593. function lineGetNewCalls(
  2594.     hLine : HLINE;
  2595.     dwAddressID : DWORD;
  2596.     dwSelect : DWORD;
  2597.     lpCallList : LPLINECALLLIST) : LONG; stdcall;
  2598.  
  2599. function lineGetIcon(
  2600.     dwDeviceID : DWORD;
  2601.     lpszDeviceClass : LPCSTR;
  2602.     lphIcon : LPHICON) : LONG; stdcall;
  2603.  
  2604. {$IFDEF Win32}
  2605. function lineGetIconA(
  2606.     dwDeviceID : DWORD;
  2607.     lpszDeviceClass : LPCSTR;
  2608.     lphIcon : LPHICON) : LONG; stdcall;
  2609.  
  2610. function lineGetIconW(
  2611.     dwDeviceID : DWORD;
  2612.     lpszDeviceClass : LPCWSTR;
  2613.     lphIcon : LPHICON) : LONG; stdcall;
  2614. {$ENDIF}
  2615.  
  2616. function lineGetID(
  2617.     hLine : HLINE;
  2618.     dwAddressID : DWORD;
  2619.     hCall : HCALL;
  2620.     dwSelect : DWORD;
  2621.     lpDeviceID : LPVARSTRING;
  2622.     lpszDeviceClass : LPCSTR) : LONG; stdcall;
  2623.  
  2624. {$IFDEF Win32}
  2625. function lineGetIDA(
  2626.     hLine : HLINE;
  2627.     dwAddressID : DWORD;
  2628.     hCall : HCALL;
  2629.     dwSelect : DWORD;
  2630.     lpDeviceID : LPVARSTRING;
  2631.     lpszDeviceClass : LPCSTR) : LONG; stdcall;
  2632.  
  2633. function lineGetIDW(
  2634.     hLine : HLINE;
  2635.     dwAddressID : DWORD;
  2636.     hCall : HCALL;
  2637.     dwSelect : DWORD;
  2638.     lpDeviceID : LPVARSTRING;
  2639.     lpszDeviceClass : LPCWSTR) : LONG; stdcall;
  2640. {$ENDIF}
  2641.  
  2642. function lineGetLineDevStatus(
  2643.     hLine : HLINE;
  2644.     lpLineDevStatus : LPLINEDEVSTATUS) : LONG; stdcall;
  2645.  
  2646. {$IFDEF Win32}
  2647. function lineGetLineDevStatusA(
  2648.     hLine : HLINE;
  2649.     lpLineDevStatus : LPLINEDEVSTATUS) : LONG; stdcall;
  2650.  
  2651. function lineGetLineDevStatusW(
  2652.     hLine : HLINE;
  2653.     lpLineDevStatus : LPLINEDEVSTATUS) : LONG; stdcall;
  2654. {$ENDIF}
  2655.  
  2656. {$IFDEF Tapi_Ver20}
  2657. function lineGetMessage(                                                 // TAPI v2.0
  2658.     hLineApp : HLINEAPP;
  2659.     lpMessage : LPLINEMESSAGE;
  2660.     dwTimeout : DWORD) : LONG; stdcall;
  2661. {$ENDIF}
  2662.  
  2663. function lineGetNumRings(
  2664.     hLine : HLINE;
  2665.     dwAddressID : DWORD;
  2666.     lpdwNumRings : LPDWORD) : LONG; stdcall;
  2667.  
  2668. function lineGetProviderList(                                            // TAPI v1.4
  2669.     dwAPIVersion : DWORD;
  2670.     lpProviderList : LPLINEPROVIDERLIST) : LONG; stdcall;
  2671.  
  2672. {$IFDEF Win32}
  2673. function lineGetProviderListA(
  2674.     dwAPIVersion : DWORD;
  2675.     lpProviderList : LPLINEPROVIDERLIST) : LONG; stdcall;
  2676.  
  2677. function lineGetProviderListW(
  2678.     dwAPIVersion : DWORD;
  2679.     lpProviderList : LPLINEPROVIDERLIST) : LONG; stdcall;
  2680. {$ENDIF}
  2681.  
  2682. function lineGetRequest(
  2683.     hLineApp : HLINEAPP;
  2684.     dwRequestMode : DWORD;
  2685.     lpRequestBuffer : LPVOID) : LONG; stdcall;
  2686.  
  2687. {$IFDEF Win32}
  2688. function lineGetRequestA(
  2689.     hLineApp : HLINEAPP;
  2690.     dwRequestMode : DWORD;
  2691.     lpRequestBuffer : LPVOID) : LONG; stdcall;
  2692.  
  2693. function lineGetRequestW(
  2694.     hLineApp : HLINEAPP;
  2695.     dwRequestMode : DWORD;
  2696.     lpRequestBuffer : LPVOID) : LONG; stdcall;
  2697. {$ENDIF}
  2698.  
  2699. function lineGetStatusMessages(
  2700.     hLine : HLINE;
  2701.     lpdwLineStates : LPDWORD;
  2702.     lpdwAddressStates : LPDWORD) : LONG; stdcall;
  2703.  
  2704. function lineGetTranslateCaps(
  2705.     hLineApp : HLINEAPP;
  2706.     dwAPIVersion : DWORD;
  2707.     lpTranslateCaps : LPLINETRANSLATECAPS) : LONG; stdcall;
  2708.  
  2709. {$IFDEF Win32}
  2710. function lineGetTranslateCapsA(
  2711.     hLineApp : HLINEAPP;
  2712.     dwAPIVersion : DWORD;
  2713.     lpTranslateCaps : LPLINETRANSLATECAPS) : LONG; stdcall;
  2714.  
  2715. function lineGetTranslateCapsW(
  2716.     hLineApp : HLINEAPP;
  2717.     dwAPIVersion : DWORD;
  2718.     lpTranslateCaps : LPLINETRANSLATECAPS) : LONG; stdcall;
  2719. {$ENDIF}
  2720.  
  2721. function lineHandoff(
  2722.     hCall : HCALL;
  2723.     lpszFileName : LPCSTR;
  2724.     dwMediaMode : DWORD) : LONG; stdcall;
  2725.  
  2726. {$IFDEF Win32}
  2727. function lineHandoffA(
  2728.     hCall : HCALL;
  2729.     lpszFileName : LPCSTR;
  2730.     dwMediaMode : DWORD) : LONG; stdcall;
  2731.  
  2732. function lineHandoffW(
  2733.     hCall : HCALL;
  2734.     lpszFileName : LPCWSTR;
  2735.     dwMediaMode : DWORD) : LONG; stdcall;
  2736. {$ENDIF}
  2737.  
  2738. function lineHold(
  2739.     hCall : HCALL) : LONG; stdcall;
  2740.  
  2741. function lineInitialize(
  2742.     lphLineApp : LPHLINEAPP;
  2743.     hInstance : HINSTANCE;
  2744.     lpfnCallback : TLINECALLBACK;
  2745.     lpszAppName : LPCSTR;
  2746.     lpdwNumDevs : LPDWORD) : LONG; stdcall;
  2747.  
  2748. {$IFDEF Tapi_Ver20}
  2749.  
  2750. {$IFDEF Win32}
  2751. function lineInitializeExA(                                               // TAPI v2.0
  2752.     lphLineApp : LPHLINEAPP;
  2753.     hInstance : HINSTANCE;
  2754.     lpfnCallback : TLINECALLBACK;
  2755.     lpszFriendlyAppName : LPCSTR;
  2756.     lpdwNumDevs : LPDWORD;
  2757.     lpdwAPIVersion : LPDWORD;
  2758.     lpLineInitializeExParams : LPLINEINITIALIZEEXPARAMS) : LONG; stdcall;
  2759. {$ENDIF}
  2760.  
  2761. function lineInitializeEx(                                               // TAPI v2.0
  2762.     lphLineApp : LPHLINEAPP;
  2763.     hInstance : HINSTANCE;
  2764.     lpfnCallback : TLINECALLBACK;
  2765.     lpszFriendlyAppName : LPCSTR;
  2766.     lpdwNumDevs : LPDWORD;
  2767.     lpdwAPIVersion : LPDWORD;
  2768.     lpLineInitializeExParams : LPLINEINITIALIZEEXPARAMS) : LONG; stdcall;
  2769.  
  2770. {$IFDEF Win32}
  2771. function lineInitializeExW(                                               // TAPI v2.0
  2772.     lphLineApp : LPHLINEAPP;
  2773.     hInstance : HINSTANCE;
  2774.     lpfnCallback : TLINECALLBACK;
  2775.     lpszFriendlyAppName : LPCWSTR;
  2776.     lpdwNumDevs : LPDWORD;
  2777.     lpdwAPIVersion : LPDWORD;
  2778.     lpLineInitializeExParams : LPLINEINITIALIZEEXPARAMS) : LONG; stdcall;
  2779. {$ENDIF}
  2780.  
  2781. {$ENDIF}
  2782.  
  2783. function lineMakeCall(
  2784.     hLine : HLINE;
  2785.     lphCall : LPHCALL;
  2786.     lpszDestAddress : LPCSTR;
  2787.     dwCountryCode : DWORD;
  2788.     const lpCallParams : LPLINECALLPARAMS) : LONG; stdcall;
  2789.  
  2790. {$IFDEF Win32}
  2791. function lineMakeCallA(
  2792.     hLine : HLINE;
  2793.     lphCall : LPHCALL;
  2794.     lpszDestAddress : LPCSTR;
  2795.     dwCountryCode : DWORD;
  2796.     const lpCallParams : LPLINECALLPARAMS) : LONG; stdcall;
  2797.  
  2798. function lineMakeCallW(
  2799.     hLine : HLINE;
  2800.     lphCall : LPHCALL;
  2801.     lpszDestAddress : LPCWSTR;
  2802.     dwCountryCode : DWORD;
  2803.     const lpCallParams : LPLINECALLPARAMS) : LONG; stdcall;
  2804. {$ENDIF}
  2805.  
  2806. function lineMonitorDigits(
  2807.     hCall : HCALL;
  2808.     dwDigitModes : DWORD) : LONG; stdcall;
  2809.  
  2810. function lineMonitorMedia(
  2811.     hCall : HCALL;
  2812.     dwMediaModes : DWORD) : LONG; stdcall;
  2813.  
  2814. function lineMonitorTones(
  2815.     hCall : HCALL;
  2816.     const lpToneList : LPLINEMONITORTONE;
  2817.     dwNumEntries : DWORD) : LONG; stdcall;
  2818.  
  2819. function lineNegotiateAPIVersion(
  2820.     hLineApp : HLINEAPP;
  2821.     dwDeviceID : DWORD;
  2822.     dwAPILowVersion : DWORD;
  2823.     dwAPIHighVersion : DWORD;
  2824.     lpdwAPIVersion : LPDWORD;
  2825.     lpExtensionID : LPLINEEXTENSIONID) : LONG; stdcall;
  2826.  
  2827. function lineNegotiateExtVersion(
  2828.     hLineApp : HLINEAPP;
  2829.     dwDeviceID : DWORD;
  2830.     dwAPIVersion : DWORD;
  2831.     dwExtLowVersion : DWORD;
  2832.     dwExtHighVersion : DWORD;
  2833.     lpdwExtVersion : LPDWORD) : LONG; stdcall;
  2834.  
  2835. function lineOpen(
  2836.     hLineApp : HLINEAPP;
  2837.     dwDeviceID : DWORD;
  2838.     lphLine : LPHLINE;
  2839.     dwAPIVersion : DWORD;
  2840.     dwExtVersion : DWORD;
  2841.     dwCallbackInstance : DWORD;
  2842.     dwPrivileges : DWORD;
  2843.     dwMediaModes : DWORD;
  2844.     const lpCallParams : LPLINECALLPARAMS) : LONG; stdcall;
  2845.  
  2846. {$IFDEF Win32}
  2847. function lineOpenA(
  2848.     hLineApp : HLINEAPP;
  2849.     dwDeviceID : DWORD;
  2850.     lphLine : LPHLINE;
  2851.     dwAPIVersion : DWORD;
  2852.     dwExtVersion : DWORD;
  2853.     dwCallbackInstance : DWORD;
  2854.     dwPrivileges : DWORD;
  2855.     dwMediaModes : DWORD;
  2856.     const lpCallParams : LPLINECALLPARAMS) : LONG; stdcall;
  2857.  
  2858. function lineOpenW(
  2859.     hLineApp : HLINEAPP;
  2860.     dwDeviceID : DWORD;
  2861.     lphLine : LPHLINE;
  2862.     dwAPIVersion : DWORD;
  2863.     dwExtVersion : DWORD;
  2864.     dwCallbackInstance : DWORD;
  2865.     dwPrivileges : DWORD;
  2866.     dwMediaModes : DWORD;
  2867.     const lpCallParams : LPLINECALLPARAMS) : LONG; stdcall;
  2868. {$ENDIF}
  2869.  
  2870. function linePark(
  2871.     hCall : HCALL;
  2872.     dwParkMode : DWORD;
  2873.     lpszDirAddress : LPCSTR;
  2874.     lpNonDirAddress : LPVARSTRING) : LONG; stdcall;
  2875.  
  2876. {$IFDEF Win32}
  2877. function lineParkA(
  2878.     hCall : HCALL;
  2879.     dwParkMode : DWORD;
  2880.     lpszDirAddress : LPCSTR;
  2881.     lpNonDirAddress : LPVARSTRING) : LONG; stdcall;
  2882.  
  2883. function lineParkW(
  2884.     hCall : HCALL;
  2885.     dwParkMode : DWORD;
  2886.     lpszDirAddress : LPCWSTR;
  2887.     lpNonDirAddress : LPVARSTRING) : LONG; stdcall;
  2888. {$ENDIF}
  2889.  
  2890. function linePickup(
  2891.     hLine : HLINE;
  2892.     dwAddressID : DWORD;
  2893.     lphCall : LPHCALL;
  2894.     lpszDestAddress : LPCSTR;
  2895.     lpszGroupID : LPCSTR) : LONG; stdcall;
  2896.  
  2897. {$IFDEF Win32}
  2898. function linePickupA(
  2899.     hLine : HLINE;
  2900.     dwAddressID : DWORD;
  2901.     lphCall : LPHCALL;
  2902.     lpszDestAddress : LPCSTR;
  2903.     lpszGroupID : LPCSTR) : LONG; stdcall;
  2904.  
  2905. function linePickupW(
  2906.     hLine : HLINE;
  2907.     dwAddressID : DWORD;
  2908.     lphCall : LPHCALL;
  2909.     lpszDestAddress : LPCWSTR;
  2910.     lpszGroupID : LPCWSTR) : LONG; stdcall;
  2911. {$ENDIF}
  2912.  
  2913. function linePrepareAddToConference(
  2914.     hConfCall : HCALL;
  2915.     lphConsultCall : LPHCALL;
  2916.     const lpCallParams : LPLINECALLPARAMS) : LONG; stdcall;
  2917.  
  2918. {$IFDEF Win32}
  2919. function linePrepareAddToConferenceA(
  2920.     hConfCall : HCALL;
  2921.     lphConsultCall : LPHCALL;
  2922.     const lpCallParams : LPLINECALLPARAMS) : LONG; stdcall;
  2923.  
  2924. function linePrepareAddToConferenceW(
  2925.     hConfCall : HCALL;
  2926.     lphConsultCall : LPHCALL;
  2927.     const lpCallParams : LPLINECALLPARAMS) : LONG; stdcall;
  2928. {$ENDIF}
  2929.  
  2930. {$IFDEF Tapi_Ver20}
  2931. function lineProxyMessage(                                               // TAPI v2.0
  2932.     hLine : HLINE;
  2933.     hCall : HCALL;
  2934.     dwMsg : DWORD;
  2935.     dwParam1 : DWORD;
  2936.     dwParam2 : DWORD;
  2937.     dwParam3 : DWORD) : LONG; stdcall;
  2938.  
  2939. function lineProxyResponse(                                              // TAPI v2.0
  2940.     hLine : HLINE;
  2941.     lpProxyRequest : LPLINEPROXYREQUEST;
  2942.     dwResult : DWORD) : LONG; stdcall;
  2943. {$ENDIF}
  2944.  
  2945. function lineRedirect(
  2946.     hCall : HCALL;
  2947.     lpszDestAddress : LPCSTR;
  2948.     dwCountryCode : DWORD) : LONG; stdcall;
  2949.  
  2950. {$IFDEF Win32}
  2951. function lineRedirectA(
  2952.     hCall : HCALL;
  2953.     lpszDestAddress : LPCSTR;
  2954.     dwCountryCode : DWORD) : LONG; stdcall;
  2955.  
  2956. function lineRedirectW(
  2957.     hCall : HCALL;
  2958.     lpszDestAddress : LPCWSTR;
  2959.     dwCountryCode : DWORD) : LONG; stdcall;
  2960. {$ENDIF}
  2961.  
  2962. function lineRegisterRequestRecipient(
  2963.     hLineApp : HLINEAPP;
  2964.     dwRegistrationInstance : DWORD;
  2965.     dwRequestMode : DWORD;
  2966.     bEnable : DWORD) : LONG; stdcall;
  2967.  
  2968. function lineReleaseUserUserInfo(                                        // TAPI v1.4
  2969.     hCall : HCALL) : LONG; stdcall;
  2970.  
  2971. function lineRemoveFromConference(
  2972.     hCall : HCALL) : LONG; stdcall;
  2973.  
  2974. function lineRemoveProvider(                                             // TAPI v1.4
  2975.     dwPermanentProviderID : DWORD;
  2976.     hwndOwner : HWND) : LONG; stdcall;
  2977.  
  2978. function lineSecureCall(
  2979.     hCall : HCALL) : LONG; stdcall;
  2980.  
  2981. function lineSendUserUserInfo(
  2982.     hCall : HCALL;
  2983.     lpsUserUserInfo : LPCSTR;
  2984.     dwSize : DWORD) : LONG; stdcall;
  2985.  
  2986. {$IFDEF Tapi_Ver20}
  2987. function lineSetAgentActivity(                                           // TAPI v2.0
  2988.     hLine : HLINE;
  2989.     dwAddressID : DWORD;
  2990.     dwActivityID : DWORD) : LONG; stdcall;
  2991.  
  2992. function lineSetAgentGroup(                                              // TAPI v2.0
  2993.     hLine : HLINE;
  2994.     dwAddressID : DWORD;
  2995.     lpAgentGroupList : LPLINEAGENTGROUPLIST) : LONG; stdcall;
  2996.  
  2997. function lineSetAgentState(                                              // TAPI v2.0
  2998.     hLine : HLINE;
  2999.     dwAddressID : DWORD;
  3000.     dwAgentState : DWORD;
  3001.     dwNextAgentState : DWORD) : LONG; stdcall;
  3002. {$ENDIF}
  3003.  
  3004. function lineSetAppPriority(                                             // TAPI v1.4
  3005.     lpszAppFilename : LPCSTR;
  3006.     dwMediaMode : DWORD;
  3007.     lpExtensionID : LPLINEEXTENSIONID;
  3008.     dwRequestMode : DWORD;
  3009.     lpszExtensionName : LPCSTR;
  3010.     dwPriority : DWORD) : LONG; stdcall;
  3011.  
  3012. {$IFDEF Win32}
  3013. function lineSetAppPriorityA(                                             // TAPI v1.4
  3014.     lpszAppFilename : LPCSTR;
  3015.     dwMediaMode : DWORD;
  3016.     lpExtensionID : LPLINEEXTENSIONID;
  3017.     dwRequestMode : DWORD;
  3018.     lpszExtensionName : LPCSTR;
  3019.     dwPriority : DWORD) : LONG; stdcall;
  3020.  
  3021. function lineSetAppPriorityW(                                             // TAPI v1.4
  3022.     lpszAppFilename : LPCWSTR;
  3023.     dwMediaMode : DWORD;
  3024.     lpExtensionID : LPLINEEXTENSIONID;
  3025.     dwRequestMode : DWORD;
  3026.     lpszExtensionName : LPCWSTR;
  3027.     dwPriority : DWORD) : LONG; stdcall;
  3028. {$ENDIF}
  3029.  
  3030. function lineSetAppSpecific(
  3031.     hCall : HCALL;
  3032.     dwAppSpecific : DWORD) : LONG; stdcall;
  3033.  
  3034. {$IFDEF Tapi_Ver20}
  3035. function lineSetCallData(                                                // TAPI v2.0
  3036.     hCall : HCALL;
  3037.     lpCallData : LPVOID;
  3038.     dwSize : DWORD) : LONG; stdcall;
  3039. {$ENDIF}
  3040.  
  3041. function lineSetCallParams(
  3042.     hCall : HCALL;
  3043.     dwBearerMode : DWORD;
  3044.     dwMinRate : DWORD;
  3045.     dwMaxRate : DWORD;
  3046.     const lpDialParams : LPLINEDIALPARAMS) : LONG; stdcall;
  3047.  
  3048. function lineSetCallPrivilege(
  3049.     hCall : HCALL;
  3050.     dwCallPrivilege : DWORD) : LONG; stdcall;
  3051.  
  3052. {$IFDEF Tapi_Ver20}
  3053. function lineSetCallQualityOfService(                                    // TAPI v2.0
  3054.     hCall : HCALL;
  3055.     lpSendingFlowspec : LPVOID;
  3056.     dwSendingFlowspecSize : DWORD;
  3057.     lpReceivingFlowspec : LPVOID;
  3058.     dwReceivingFlowspecSize : DWORD) : LONG; stdcall;
  3059.  
  3060. function lineSetCallTreatment(                                           // TAPI v2.0
  3061.     hCall : HCALL;
  3062.     dwTreatment : DWORD) : LONG; stdcall;
  3063. {$ENDIF}
  3064.  
  3065. function lineSetCurrentLocation(
  3066.     hLineApp : HLINEAPP;
  3067.     dwLocation : DWORD) : LONG; stdcall;
  3068.  
  3069. function lineSetDevConfig(
  3070.     dwDeviceID : DWORD;
  3071.     const lpDeviceConfig : LPVOID;
  3072.     dwSize : DWORD;
  3073.     lpszDeviceClass : LPCSTR) : LONG; stdcall;
  3074.  
  3075. {$IFDEF Win32}
  3076. function lineSetDevConfigA(
  3077.     dwDeviceID : DWORD;
  3078.     const lpDeviceConfig : LPVOID;
  3079.     dwSize : DWORD;
  3080.     lpszDeviceClass : LPCSTR) : LONG; stdcall;
  3081.  
  3082. function lineSetDevConfigW(
  3083.     dwDeviceID : DWORD;
  3084.     const lpDeviceConfig : LPVOID;
  3085.     dwSize : DWORD;
  3086.     lpszDeviceClass : LPCWSTR) : LONG; stdcall;
  3087. {$ENDIF}
  3088.  
  3089. {$IFDEF Tapi_Ver20}
  3090. function lineSetLineDevStatus(                                           // TAPI v2.0
  3091.     hLine : HLINE;
  3092.     dwStatusToChange : DWORD;
  3093.     fStatus : DWORD) : LONG; stdcall;
  3094. {$ENDIF}
  3095.  
  3096. function lineSetMediaControl(
  3097.     hLine : HLINE;
  3098.     dwAddressID : DWORD;
  3099.     hCall : HCALL;
  3100.     dwSelect : DWORD;
  3101.     const lpDigitList : LPLINEMEDIACONTROLDIGIT;
  3102.     dwDigitNumEntries : DWORD;
  3103.     const lpMediaList : LPLINEMEDIACONTROLMEDIA;
  3104.     dwMediaNumEntries : DWORD;
  3105.     const lpToneList : LPLINEMEDIACONTROLTONE;
  3106.     dwToneNumEntries : DWORD;
  3107.     const lpCallStateList : LPLINEMEDIACONTROLCALLSTATE;
  3108.     dwCallStateNumEntries : DWORD) : LONG; stdcall;
  3109.  
  3110. function lineSetMediaMode(
  3111.     hCall : HCALL;
  3112.     dwMediaModes : DWORD) : LONG; stdcall;
  3113.  
  3114. function lineSetNumRings(
  3115.     hLine : HLINE;
  3116.     dwAddressID : DWORD;
  3117.     dwNumRings : DWORD) : LONG; stdcall;
  3118.  
  3119. function lineSetStatusMessages(
  3120.     hLine : HLINE;
  3121.     dwLineStates : DWORD;
  3122.     dwAddressStates : DWORD) : LONG; stdcall;
  3123.  
  3124. function lineSetTerminal(
  3125.     hLine : HLINE;
  3126.     dwAddressID : DWORD;
  3127.     hCall : HCALL;
  3128.     dwSelect : DWORD;
  3129.     dwTerminalModes : DWORD;
  3130.     dwTerminalID : DWORD;
  3131.     bEnable : DWORD) : LONG; stdcall;
  3132.  
  3133. function lineSetTollList(
  3134.     hLineApp : HLINEAPP;
  3135.     dwDeviceID : DWORD;
  3136.     lpszAddressIn : LPCSTR;
  3137.     dwTollListOption : DWORD) : LONG; stdcall;
  3138.  
  3139. {$IFDEF Win32}
  3140. function lineSetTollListA(
  3141.     hLineApp : HLINEAPP;
  3142.     dwDeviceID : DWORD;
  3143.     lpszAddressIn : LPCSTR;
  3144.     dwTollListOption : DWORD) : LONG; stdcall;
  3145.  
  3146. function lineSetTollListW(
  3147.     hLineApp : HLINEAPP;
  3148.     dwDeviceID : DWORD;
  3149.     lpszAddressInW : LPCWSTR;
  3150.     dwTollListOption : DWORD) : LONG; stdcall;
  3151. {$ENDIF}
  3152.  
  3153. function lineSetupConference(
  3154.     hCall : HCALL;
  3155.     hLine : HLINE;
  3156.     lphConfCall : LPHCALL;
  3157.     lphConsultCall : LPHCALL;
  3158.     dwNumParties : DWORD;
  3159.     const lpCallParams : LPLINECALLPARAMS) : LONG; stdcall;
  3160.  
  3161. {$IFDEF Win32}
  3162. function lineSetupConferenceA(
  3163.     hCall : HCALL;
  3164.     hLine : HLINE;
  3165.     lphConfCall : LPHCALL;
  3166.     lphConsultCall : LPHCALL;
  3167.     dwNumParties : DWORD;
  3168.     const lpCallParams : LPLINECALLPARAMS) : LONG; stdcall;
  3169.  
  3170. function lineSetupConferenceW(
  3171.     hCall : HCALL;
  3172.     hLine : HLINE;
  3173.     lphConfCall : LPHCALL;
  3174.     lphConsultCall : LPHCALL;
  3175.     dwNumParties : DWORD;
  3176.     const lpCallParams : LPLINECALLPARAMS) : LONG; stdcall;
  3177. {$ENDIF}
  3178.  
  3179. function lineSetupTransfer(
  3180.     hCall : HCALL;
  3181.     lphConsultCall : LPHCALL;
  3182.     const lpCallParams : LPLINECALLPARAMS) : LONG; stdcall;
  3183.  
  3184. {$IFDEF Win32}
  3185. function lineSetupTransferA(
  3186.     hCall : HCALL;
  3187.     lphConsultCall : LPHCALL;
  3188.     const lpCallParams : LPLINECALLPARAMS) : LONG; stdcall;
  3189.  
  3190. function lineSetupTransferW(
  3191.     hCall : HCALL;
  3192.     lphConsultCall : LPHCALL;
  3193.     const lpCallParams : LPLINECALLPARAMS) : LONG; stdcall;
  3194. {$ENDIF}
  3195.  
  3196. function lineShutdown(
  3197.     hLineApp : HLINEAPP) : LONG; stdcall;
  3198.  
  3199. function lineSwapHold(
  3200.     hActiveCall : HCALL;
  3201.     hHeldCall : HCALL) : LONG; stdcall;
  3202.  
  3203. function lineTranslateAddress(
  3204.     hLineApp : HLINEAPP;
  3205.     dwDeviceID : DWORD;
  3206.     dwAPIVersion : DWORD;
  3207.     lpszAddressIn : LPCSTR;
  3208.     dwCard : DWORD;
  3209.     dwTranslateOptions : DWORD;
  3210.     lpTranslateOutput : LPLINETRANSLATEOUTPUT) : LONG; stdcall;
  3211.  
  3212. {$IFDEF Win32}
  3213. function lineTranslateAddressA(
  3214.     hLineApp : HLINEAPP;
  3215.     dwDeviceID : DWORD;
  3216.     dwAPIVersion : DWORD;
  3217.     lpszAddressIn : LPCSTR;
  3218.     dwCard : DWORD;
  3219.     dwTranslateOptions : DWORD;
  3220.     lpTranslateOutput : LPLINETRANSLATEOUTPUT) : LONG; stdcall;
  3221.  
  3222. function lineTranslateAddressW(
  3223.     hLineApp : HLINEAPP;
  3224.     dwDeviceID : DWORD;
  3225.     dwAPIVersion : DWORD;
  3226.     lpszAddressIn : LPCWSTR;
  3227.     dwCard : DWORD;
  3228.     dwTranslateOptions : DWORD;
  3229.     lpTranslateOutput : LPLINETRANSLATEOUTPUT) : LONG; stdcall;
  3230. {$ENDIF}
  3231.  
  3232. function lineTranslateDialog(                                            // TAPI v1.4
  3233.     hLineApp : HLINEAPP;
  3234.     dwDeviceID : DWORD;
  3235.     dwAPIVersion : DWORD;
  3236.     hwndOwner : HWND;
  3237.     lpszAddressIn : LPCSTR) : LONG; stdcall;
  3238.  
  3239. {$IFDEF Win32}
  3240. function lineTranslateDialogA(                                            // TAPI v1.4
  3241.     hLineApp : HLINEAPP;
  3242.     dwDeviceID : DWORD;
  3243.     dwAPIVersion : DWORD;
  3244.     hwndOwner : HWND;
  3245.     lpszAddressIn : LPCSTR) : LONG; stdcall;
  3246.  
  3247. function lineTranslateDialogW(
  3248.     hLineApp : HLINEAPP;
  3249.     dwDeviceID : DWORD;
  3250.     dwAPIVersion : DWORD;
  3251.     hwndOwner : HWND;
  3252.     lpszAddressIn : LPCWSTR) : LONG; stdcall;
  3253. {$ENDIF}
  3254.  
  3255. function lineUncompleteCall(
  3256.     hLine : HLINE;
  3257.     dwCompletionID : DWORD) : LONG; stdcall;
  3258.  
  3259. function lineUnhold(
  3260.     hCall : HCALL) : LONG; stdcall;
  3261.  
  3262. function lineUnpark(
  3263.     hLine : HLINE;
  3264.     dwAddressID : DWORD;
  3265.     lphCall : LPHCALL;
  3266.     lpszDestAddress : LPCSTR) : LONG; stdcall;
  3267.  
  3268. {$IFDEF Win32}
  3269. function lineUnparkA(
  3270.     hLine : HLINE;
  3271.     dwAddressID : DWORD;
  3272.     lphCall : LPHCALL;
  3273.     lpszDestAddress : LPCSTR) : LONG; stdcall;
  3274.  
  3275. function lineUnparkW(
  3276.     hLine : HLINE;
  3277.     dwAddressID : DWORD;
  3278.     lphCall : LPHCALL;
  3279.     lpszDestAddress : LPCWSTR) : LONG; stdcall;
  3280. {$ENDIF}
  3281.  
  3282. function phoneClose(
  3283.     hPhone : HPHONE) : LONG; stdcall;
  3284.  
  3285. function phoneConfigDialog(
  3286.     dwDeviceID : DWORD;
  3287.     hwndOwner : HWND;
  3288.     lpszDeviceClass : LPCSTR) : LONG; stdcall;
  3289.  
  3290. {$IFDEF Win32}
  3291. function phoneConfigDialogA(
  3292.     dwDeviceID : DWORD;
  3293.     hwndOwner : HWND;
  3294.     lpszDeviceClass : LPCSTR) : LONG; stdcall;
  3295.  
  3296. function phoneConfigDialogW(
  3297.     dwDeviceID : DWORD;
  3298.     hwndOwner : HWND;
  3299.     lpszDeviceClass : LPCWSTR) : LONG; stdcall;
  3300. {$ENDIF}
  3301.  
  3302. function phoneDevSpecific(
  3303.     hPhone : HPHONE;
  3304.     lpParams : LPVOID;
  3305.     dwSize : DWORD) : LONG; stdcall;
  3306.  
  3307. function phoneGetButtonInfo(
  3308.     hPhone : HPHONE;
  3309.     dwButtonLampID : DWORD;
  3310.     lpButtonInfo : LPPHONEBUTTONINFO) : LONG; stdcall;
  3311.  
  3312. {$IFDEF Win32}
  3313. function phoneGetButtonInfoA(
  3314.     hPhone : HPHONE;
  3315.     dwButtonLampID : DWORD;
  3316.     lpButtonInfo : LPPHONEBUTTONINFO) : LONG; stdcall;
  3317.  
  3318. function phoneGetButtonInfoW(
  3319.     hPhone : HPHONE;
  3320.     dwButtonLampID : DWORD;
  3321.     lpButtonInfo : LPPHONEBUTTONINFO) : LONG; stdcall;
  3322. {$ENDIF}
  3323.  
  3324. function phoneGetData(
  3325.     hPhone : HPHONE;
  3326.     dwDataID : DWORD;
  3327.     lpData : LPVOID;
  3328.     dwSize : DWORD) : LONG; stdcall;
  3329.  
  3330. function phoneGetDevCaps(
  3331.     hPhoneApp : HPHONEAPP;
  3332.     dwDeviceID : DWORD;
  3333.     dwAPIVersion : DWORD;
  3334.     dwExtVersion : DWORD;
  3335.     lpPhoneCaps : LPPHONECAPS) : LONG; stdcall;
  3336.  
  3337. {$IFDEF Win32}
  3338. function phoneGetDevCapsA(
  3339.     hPhoneApp : HPHONEAPP;
  3340.     dwDeviceID : DWORD;
  3341.     dwAPIVersion : DWORD;
  3342.     dwExtVersion : DWORD;
  3343.     lpPhoneCaps : LPPHONECAPS) : LONG; stdcall;
  3344.  
  3345. function phoneGetDevCapsW(
  3346.     hPhoneApp : HPHONEAPP;
  3347.     dwDeviceID : DWORD;
  3348.     dwAPIVersion : DWORD;
  3349.     dwExtVersion : DWORD;
  3350.     lpPhoneCaps : LPPHONECAPS) : LONG; stdcall;
  3351. {$ENDIF}
  3352.  
  3353. function phoneGetDisplay(
  3354.     hPhone : HPHONE;
  3355.     lpDisplay : LPVARSTRING) : LONG; stdcall;
  3356.  
  3357. function phoneGetGain(
  3358.     hPhone : HPHONE;
  3359.     dwHookSwitchDev : DWORD;
  3360.     lpdwGain : LPDWORD) : LONG; stdcall;
  3361.  
  3362. function phoneGetHookSwitch(
  3363.     hPhone : HPHONE;
  3364.     lpdwHookSwitchDevs : LPDWORD) : LONG; stdcall;
  3365.  
  3366. function phoneGetIcon(
  3367.     dwDeviceID : DWORD;
  3368.     lpszDeviceClass : LPCSTR;
  3369.     lphIcon : LPHICON) : LONG; stdcall;
  3370.  
  3371. {$IFDEF Win32}
  3372. function phoneGetIconA(
  3373.     dwDeviceID : DWORD;
  3374.     lpszDeviceClass : LPCSTR;
  3375.     lphIcon : LPHICON) : LONG; stdcall;
  3376.  
  3377. function phoneGetIconW(
  3378.     dwDeviceID : DWORD;
  3379.     lpszDeviceClass : LPCWSTR;
  3380.     lphIcon : LPHICON) : LONG; stdcall;
  3381. {$ENDIF}
  3382.  
  3383. function phoneGetID(
  3384.     hPhone : HPHONE;
  3385.     lpDeviceID : LPVARSTRING;
  3386.     lpszDeviceClass : LPCSTR) : LONG; stdcall;
  3387.  
  3388. {$IFDEF Win32}
  3389. function phoneGetIDA(
  3390.     hPhone : HPHONE;
  3391.     lpDeviceID : LPVARSTRING;
  3392.     lpszDeviceClass : LPCSTR) : LONG; stdcall;
  3393.  
  3394. function phoneGetIDW(
  3395.     hPhone : HPHONE;
  3396.     lpDeviceID : LPVARSTRING;
  3397.     lpszDeviceClass : LPCWSTR) : LONG; stdcall;
  3398. {$ENDIF}
  3399.  
  3400. function phoneGetLamp(
  3401.     hPhone : HPHONE;
  3402.     dwButtonLampID : DWORD;
  3403.     lpdwLampMode : LPDWORD) : LONG; stdcall;
  3404.  
  3405. {$IFDEF Tapi_Ver20}
  3406. function phoneGetMessage(                                                // TAPI v2.0
  3407.     hPhoneApp : HPHONEAPP;
  3408.     lpMessage : LPPHONEMESSAGE;
  3409.     dwTimeout : DWORD) : LONG; stdcall;
  3410. {$ENDIF}
  3411.  
  3412. function phoneGetRing(
  3413.     hPhone : HPHONE;
  3414.     lpdwRingMode : LPDWORD;
  3415.     lpdwVolume : LPDWORD) : LONG; stdcall;
  3416.  
  3417. function phoneGetStatus(
  3418.     hPhone : HPHONE;
  3419.     lpPhoneStatus : LPPHONESTATUS) : LONG; stdcall;
  3420.  
  3421. {$IFDEF Win32}
  3422. function phoneGetStatusA(
  3423.     hPhone : HPHONE;
  3424.     lpPhoneStatus : LPPHONESTATUS) : LONG; stdcall;
  3425.  
  3426. function phoneGetStatusW(
  3427.     hPhone : HPHONE;
  3428.     lpPhoneStatus : LPPHONESTATUS) : LONG; stdcall;
  3429. {$ENDIF}
  3430.  
  3431. function phoneGetStatusMessages(
  3432.     hPhone : HPHONE;
  3433.     lpdwPhoneStates : LPDWORD;
  3434.     lpdwButtonModes : LPDWORD;
  3435.     lpdwButtonStates : LPDWORD) : LONG; stdcall;
  3436.  
  3437. function phoneGetVolume(
  3438.     hPhone : HPHONE;
  3439.     dwHookSwitchDev : DWORD;
  3440.     lpdwVolume : LPDWORD) : LONG; stdcall;
  3441.  
  3442. function phoneInitialize(
  3443.     lphPhoneApp : LPHPHONEAPP;
  3444.     hInstance : HINSTANCE;
  3445.     lpfnCallback : TPHONECALLBACK;
  3446.     lpszAppName : LPCSTR;
  3447.     lpdwNumDevs : LPDWORD) : LONG; stdcall;
  3448.  
  3449.  
  3450. {$IFDEF Tapi_Ver20}
  3451. {$IFDEF Win32}
  3452. function phoneInitializeExA(                                              // TAPI v2.0
  3453.     lphPhoneApp : LPHPHONEAPP;
  3454.     hInstance : HINSTANCE;
  3455.     lpfnCallback : TPHONECALLBACK;
  3456.     lpszFriendlyAppName : LPCSTR;
  3457.     lpdwNumDevs : LPDWORD;
  3458.     lpdwAPIVersion : LPDWORD;
  3459.     lpPhoneInitializeExParams : LPPHONEINITIALIZEEXPARAMS) : LONG; stdcall;
  3460. {$ENDIF}
  3461.  
  3462. function phoneInitializeEx(                                              // TAPI v2.0
  3463.     lphPhoneApp : LPHPHONEAPP;
  3464.     hInstance : HINSTANCE;
  3465.     lpfnCallback : TPHONECALLBACK;
  3466.     lpszFriendlyAppName : LPCSTR;
  3467.     lpdwNumDevs : LPDWORD;
  3468.     lpdwAPIVersion : LPDWORD;
  3469.     lpPhoneInitializeExParams : LPPHONEINITIALIZEEXPARAMS) : LONG; stdcall;
  3470.  
  3471. {$IFDEF Win32}
  3472. function phoneInitializeExW(                                              // TAPI v2.0
  3473.     lphPhoneApp : LPHPHONEAPP;
  3474.     hInstance : HINSTANCE;
  3475.     lpfnCallback : TPHONECALLBACK;
  3476.     lpszFriendlyAppName : LPCWSTR;
  3477.     lpdwNumDevs : LPDWORD;
  3478.     lpdwAPIVersion : LPDWORD;
  3479.     lpPhoneInitializeExParams : LPPHONEINITIALIZEEXPARAMS) : LONG; stdcall;
  3480. {$ENDIF}
  3481.  
  3482. {$ENDIF}
  3483.  
  3484. function phoneNegotiateAPIVersion(
  3485.     hPhoneApp : HPHONEAPP;
  3486.     dwDeviceID : DWORD;
  3487.     dwAPILowVersion : DWORD;
  3488.     dwAPIHighVersion : DWORD;
  3489.     lpdwAPIVersion : LPDWORD;
  3490.     lpExtensionID : LPPHONEEXTENSIONID) : LONG; stdcall;
  3491.  
  3492. function phoneNegotiateExtVersion(
  3493.     hPhoneApp : HPHONEAPP;
  3494.     dwDeviceID : DWORD;
  3495.     dwAPIVersion : DWORD;
  3496.     dwExtLowVersion : DWORD;
  3497.     dwExtHighVersion : DWORD;
  3498.     lpdwExtVersion : LPDWORD) : LONG; stdcall;
  3499.  
  3500. function phoneOpen(
  3501.     hPhoneApp : HPHONEAPP;
  3502.     dwDeviceID : DWORD;
  3503.     lphPhone : LPHPHONE;
  3504.     dwAPIVersion : DWORD;
  3505.     dwExtVersion : DWORD;
  3506.     dwCallbackInstance : DWORD;
  3507.     dwPrivilege : DWORD) : LONG; stdcall;
  3508.  
  3509. function phoneSetButtonInfo(
  3510.     hPhone : HPHONE;
  3511.     dwButtonLampID : DWORD;
  3512.     const lpButtonInfo : LPPHONEBUTTONINFO) : LONG; stdcall;
  3513.  
  3514. {$IFDEF Win32}
  3515. function phoneSetButtonInfoA(
  3516.     hPhone : HPHONE;
  3517.     dwButtonLampID : DWORD;
  3518.     const lpButtonInfo : LPPHONEBUTTONINFO) : LONG; stdcall;
  3519.  
  3520. function phoneSetButtonInfoW(
  3521.     hPhone : HPHONE;
  3522.     dwButtonLampID : DWORD;
  3523.     const lpButtonInfo : LPPHONEBUTTONINFO) : LONG; stdcall;
  3524. {$ENDIF}
  3525.  
  3526. function phoneSetData(
  3527.     hPhone : HPHONE;
  3528.     dwDataID : DWORD;
  3529.     const lpData : LPVOID;
  3530.     dwSize : DWORD) : LONG; stdcall;
  3531.  
  3532. function phoneSetDisplay(
  3533.     hPhone : HPHONE;
  3534.     dwRow : DWORD;
  3535.     dwColumn : DWORD;
  3536.     lpsDisplay : LPCSTR;
  3537.     dwSize : DWORD) : LONG; stdcall;
  3538.  
  3539. function phoneSetGain(
  3540.     hPhone : HPHONE;
  3541.     dwHookSwitchDev : DWORD;
  3542.     dwGain : DWORD) : LONG; stdcall;
  3543.  
  3544. function phoneSetHookSwitch(
  3545.     hPhone : HPHONE;
  3546.     dwHookSwitchDevs : DWORD;
  3547.     dwHookSwitchMode : DWORD) : LONG; stdcall;
  3548.  
  3549. function phoneSetLamp(
  3550.     hPhone : HPHONE;
  3551.     dwButtonLampID : DWORD;
  3552.     dwLampMode : DWORD) : LONG; stdcall;
  3553.  
  3554. function phoneSetRing(
  3555.     hPhone : HPHONE;
  3556.     dwRingMode : DWORD;
  3557.     dwVolume : DWORD) : LONG; stdcall;
  3558.  
  3559. function phoneSetStatusMessages(
  3560.     hPhone : HPHONE;
  3561.     dwPhoneStates : DWORD;
  3562.     dwButtonModes : DWORD;
  3563.     dwButtonStates : DWORD) : LONG; stdcall;
  3564.  
  3565. function phoneSetVolume(
  3566.     hPhone : HPHONE;
  3567.     dwHookSwitchDev : DWORD;
  3568.     dwVolume : DWORD) : LONG; stdcall;
  3569.  
  3570. function phoneShutdown(
  3571.     hPhoneApp : HPHONEAPP) : LONG; stdcall;
  3572.  
  3573. function tapiGetLocationInfo(
  3574.     lpszCountryCode : LPSTR;
  3575.     lpszCityCode : LPSTR) : LONG; stdcall;
  3576.  
  3577. {$IFDEF Win32}
  3578. function tapiGetLocationInfoA(
  3579.     lpszCountryCode : LPSTR;
  3580.     lpszCityCode : LPSTR) : LONG; stdcall;
  3581.  
  3582. function tapiGetLocationInfoW(
  3583.     lpszCountryCodeW : LPWSTR;
  3584.     lpszCityCodeW : LPWSTR) : LONG; stdcall;
  3585. {$ENDIF}
  3586.     
  3587. function tapiRequestDrop(
  3588.     hwnd : HWND;
  3589.     wRequestID : WPARAM) : LONG; stdcall;
  3590.  
  3591. function tapiRequestMakeCall(
  3592.     lpszDestAddress : LPCSTR;
  3593.     lpszAppName : LPCSTR;
  3594.     lpszCalledParty : LPCSTR;
  3595.     lpszComment : LPCSTR) : LONG; stdcall;
  3596.  
  3597. {$IFDEF Win32}
  3598. function tapiRequestMakeCallA(
  3599.     lpszDestAddress : LPCSTR;
  3600.     lpszAppName : LPCSTR;
  3601.     lpszCalledParty : LPCSTR;
  3602.     lpszComment : LPCSTR) : LONG; stdcall;
  3603.  
  3604. function tapiRequestMakeCallW(
  3605.     lpszDestAddress : LPCWSTR;
  3606.     lpszAppName : LPCWSTR;
  3607.     lpszCalledParty : LPCWSTR;
  3608.     lpszComment : LPCWSTR) : LONG; stdcall;
  3609. {$ENDIF}
  3610.     
  3611. function tapiRequestMediaCall(
  3612.     hwnd : HWND;
  3613.     wRequestID : WPARAM;
  3614.     lpszDeviceClass : LPCSTR;
  3615.     lpDeviceID : LPCSTR;
  3616.     dwSize : DWORD;
  3617.     dwSecure : DWORD;
  3618.     lpszDestAddress : LPCSTR;
  3619.     lpszAppName : LPCSTR;
  3620.     lpszCalledParty : LPCSTR;
  3621.     lpszComment : LPCSTR) : LONG; stdcall;
  3622.  
  3623. {$IFDEF Win32}
  3624. function tapiRequestMediaCallA(
  3625.     hwnd : HWND;
  3626.     wRequestID : WPARAM;
  3627.     lpszDeviceClass : LPCSTR;
  3628.     lpDeviceID : LPCSTR;
  3629.     dwSize : DWORD;
  3630.     dwSecure : DWORD;
  3631.     lpszDestAddress : LPCSTR;
  3632.     lpszAppName : LPCSTR;
  3633.     lpszCalledParty : LPCSTR;
  3634.     lpszComment : LPCSTR) : LONG; stdcall;
  3635.  
  3636. function tapiRequestMediaCallW(
  3637.     hwnd : HWND;
  3638.     wRequestID : WPARAM;
  3639.     lpszDeviceClass : LPCWSTR;
  3640.     lpDeviceID : LPCWSTR;
  3641.     dwSize : DWORD;
  3642.     dwSecure : DWORD;
  3643.     lpszDestAddress : LPCWSTR;
  3644.     lpszAppName : LPCWSTR;
  3645.     lpszCalledParty : LPCWSTR) : LONG; stdcall;
  3646. {$ENDIF}
  3647.  
  3648. (*
  3649.  
  3650. TAPIERROR_FORMATMESSAGE - macro to convert a TAPI error constant
  3651.     into a constant that FormatMessage will accept
  3652.     
  3653.         TAPIERR : Negative numbers and 0
  3654.             Map to : strip off high WORD
  3655.             Example: 0xFFFFFFFF (-1) becomes 0x0000FFFF
  3656.         LINEERR : Start at 0x80000000
  3657.             Map to : strip off 0x80000000 and add 0xE000
  3658.             Example: 0x80000004 becomes 0x0000E004
  3659.         PHONEERR: Start at 0x90000000
  3660.             Map to : strip off 0x90000000 and add 0xF000
  3661.             Example: 0x9000000A becomes 0x0000F00A
  3662.  
  3663.         pseudocode:
  3664.         
  3665.         if (__ErrCode__ is a TAPIERR)
  3666.             strip off high word
  3667.  
  3668.             else if (__ErrCode__ is a PHONEERR)
  3669.                 strip off 0x90000000
  3670.                 add 0xE000
  3671.  
  3672.                 else
  3673.                     strip off 0x80000000
  3674.                     add 0xF000
  3675.  
  3676. *)
  3677.  
  3678. function TAPIERROR_FORMATMESSAGE (ErrCode : INT) : INT;
  3679.  
  3680. {!! Convenience functions added for Delphi: }
  3681.  
  3682. function TapiError (ResultCode : Integer) : Boolean;
  3683.   {-Returns True if ResultCode indicates an error; True if success }
  3684.  
  3685. procedure TapiCheck (ResultCode : Integer);
  3686.   {-Raises an exception if ResultCode indicates an error }
  3687.  
  3688. {!!}
  3689.  
  3690. implementation
  3691.  
  3692. uses
  3693.   SysUtils;
  3694.  
  3695. const
  3696. {$IFDEF Win32}
  3697.   TapiDll = 'tapi32.dll';
  3698. {$ELSE}
  3699.   TapiDll = 'tapi.dll';
  3700. {$ENDIF}
  3701.  
  3702. function lineAccept; external TapiDll name 'lineAccept';
  3703. function lineAddProvider; external TapiDll name 'lineAddProvider';
  3704. function lineAddToConference; external TapiDll name 'lineAddToConference';
  3705. {$IFDEF Tapi_Ver20}
  3706. function lineAgentSpecific; external TapiDll name 'lineAgentSpecific';
  3707. {$ENDIF}
  3708. function lineAnswer; external TapiDll name 'lineAnswer';
  3709. function lineBlindTransfer; external TapiDll name 'lineBlindTransfer';
  3710. function lineClose; external TapiDll name 'lineClose';
  3711. function lineCompleteCall; external TapiDll name 'lineCompleteCall';
  3712. function lineCompleteTransfer; external TapiDll name 'lineCompleteTransfer';
  3713. function lineConfigDialog; external TapiDll name 'lineConfigDialog';
  3714. function lineConfigDialogEdit; external TapiDll name 'lineConfigDialogEdit';
  3715. function lineConfigProvider; external TapiDll name 'lineConfigProvider';
  3716. function lineDeallocateCall; external TapiDll name 'lineDeallocateCall';
  3717. function lineDevSpecific; external TapiDll name 'lineDevSpecific';
  3718. function lineDevSpecificFeature; external TapiDll name 'lineDevSpecificFeature';
  3719. function lineDial; external TapiDll name 'lineDial';
  3720. function lineDrop; external TapiDll name 'lineDrop';
  3721. function lineForward; external TapiDll name 'lineForward';
  3722. function lineGatherDigits; external TapiDll name 'lineGatherDigits';
  3723. function lineGenerateDigits; external TapiDll name 'lineGenerateDigits';
  3724. function lineGenerateTone; external TapiDll name 'lineGenerateTone';
  3725. function lineGetAddressCaps; external TapiDll name 'lineGetAddressCaps';
  3726. function lineGetAddressID; external TapiDll name 'lineGetAddressID';
  3727. function lineGetAddressStatus; external TapiDll name 'lineGetAddressStatus';
  3728. {$IFDEF Tapi_Ver20}
  3729. function lineGetAgentStatus; external TapiDll name 'lineGetAgentStatus';
  3730. function lineGetAgentGroupList; external TapiDll name 'lineGetAgentGroupList';
  3731. function lineGetAgentCaps; external TapiDll name 'lineGetAgentCaps';
  3732. function lineGetAgentActivityList; external TapiDll name 'lineGetAgentActivityList';
  3733. {$ENDIF}
  3734. function lineGetAppPriority; external TapiDll name 'lineGetAppPriority';
  3735. function lineGetCallInfo; external TapiDll name 'lineGetCallInfo';
  3736. function lineGetCallStatus; external TapiDll name 'lineGetCallStatus';
  3737. function lineGetConfRelatedCalls; external TapiDll name 'lineGetConfRelatedCalls';
  3738. function lineGetCountry; external TapiDll name 'lineGetCountry';
  3739. function lineGetDevCaps; external TapiDll name 'lineGetDevCaps';
  3740. function lineGetDevConfig; external TapiDll name 'lineGetDevConfig';
  3741. function lineGetNewCalls; external TapiDll name 'lineGetNewCalls';
  3742. function lineGetIcon; external TapiDll name 'lineGetIcon';
  3743. function lineGetID; external TapiDll name 'lineGetID';
  3744. function lineGetLineDevStatus; external TapiDll name 'lineGetLineDevStatus';
  3745. {$IFDEF Tapi_Ver20}
  3746. function lineGetMessage; external TapiDll name 'lineGetMessage';
  3747. {$ENDIF}
  3748. function lineGetNumRings; external TapiDll name 'lineGetNumRings';
  3749. function lineGetProviderList; external TapiDll name 'lineGetProviderList';
  3750. function lineGetRequest; external TapiDll name 'lineGetRequest';
  3751. function lineGetStatusMessages; external TapiDll name 'lineGetStatusMessages';
  3752. function lineGetTranslateCaps; external TapiDll name 'lineGetTranslateCaps';
  3753. function lineHandoff; external TapiDll name 'lineHandoff';
  3754. function lineHold; external TapiDll name 'lineHold';
  3755. function lineInitialize; external TapiDll name 'lineInitialize';
  3756. {$IFDEF Tapi_Ver20}
  3757. function lineInitializeEx; external TapiDll name 'lineInitializeEx';
  3758. {$ENDIF}
  3759. function lineMakeCall; external TapiDll name 'lineMakeCall';
  3760. function lineMonitorDigits; external TapiDll name 'lineMonitorDigits';
  3761. function lineMonitorMedia; external TapiDll name 'lineMonitorMedia';
  3762. function lineMonitorTones; external TapiDll name 'lineMonitorTones';
  3763. function lineNegotiateAPIVersion; external TapiDll name 'lineNegotiateAPIVersion';
  3764. function lineNegotiateExtVersion; external TapiDll name 'lineNegotiateExtVersion';
  3765. function lineOpen; external TapiDll name 'lineOpen';
  3766. function linePark; external TapiDll name 'linePark';
  3767. function linePickup; external TapiDll name 'linePickup';
  3768. function linePrepareAddToConference; external TapiDll name 'linePrepareAddToConference';
  3769. {$IFDEF Tapi_Ver20}
  3770. function lineProxyMessage; external TapiDll name 'lineProxyMessage';
  3771. function lineProxyResponse; external TapiDll name 'lineProxyResponse';
  3772. {$ENDIF}
  3773. function lineRedirect; external TapiDll name 'lineRedirect';
  3774. function lineRegisterRequestRecipient; external TapiDll name 'lineRegisterRequestRecipient';
  3775. function lineReleaseUserUserInfo; external TapiDll name 'lineReleaseUserUserInfo';
  3776. function lineRemoveFromConference; external TapiDll name 'lineRemoveFromConference';
  3777. function lineRemoveProvider; external TapiDll name 'lineRemoveProvider';
  3778. function lineSecureCall; external TapiDll name 'lineSecureCall';
  3779. function lineSendUserUserInfo; external TapiDll name 'lineSendUserUserInfo';
  3780. {$IFDEF Tapi_Ver20}
  3781. function lineSetAgentActivity; external TapiDll name 'lineSetAgentActivity';
  3782. function lineSetAgentGroup; external TapiDll name 'lineSetAgentGroup';
  3783. function lineSetAgentState; external TapiDll name 'lineSetAgentState';
  3784. {$ENDIF}
  3785. function lineSetAppPriority; external TapiDll name 'lineSetAppPriority';
  3786. function lineSetAppSpecific; external TapiDll name 'lineSetAppSpecific';
  3787. {$IFDEF Tapi_Ver20}
  3788. function lineSetCallData; external TapiDll name 'lineSetCallData';
  3789. {$ENDIF}
  3790. function lineSetCallParams; external TapiDll name 'lineSetCallParams';
  3791. function lineSetCallPrivilege; external TapiDll name 'lineSetCallPrivilege';
  3792. {$IFDEF Tapi_Ver20}
  3793. function lineSetCallQualityOfService; external TapiDll name 'lineSetCallQualityOfService';
  3794. function lineSetCallTreatment; external TapiDll name 'lineSetCallTreatment';
  3795. {$ENDIF}
  3796. function lineSetCurrentLocation; external TapiDll name 'lineSetCurrentLocation';
  3797. function lineSetDevConfig; external TapiDll name 'lineSetDevConfig';
  3798. {$IFDEF Tapi_Ver20}
  3799. function lineSetLineDevStatus; external TapiDll name 'lineSetLineDevStatus';
  3800. {$ENDIF}
  3801. function lineSetMediaControl; external TapiDll name 'lineSetMediaControl';
  3802. function lineSetMediaMode; external TapiDll name 'lineSetMediaMode';
  3803. function lineSetNumRings; external TapiDll name 'lineSetNumRings';
  3804. function lineSetStatusMessages; external TapiDll name 'lineSetStatusMessages';
  3805. function lineSetTerminal; external TapiDll name 'lineSetTerminal';
  3806. function lineSetTollList; external TapiDll name 'lineSetTollList';
  3807. function lineSetupConference; external TapiDll name 'lineSetupConference';
  3808. function lineSetupTransfer; external TapiDll name 'lineSetupTransfer';
  3809. function lineShutdown; external TapiDll name 'lineShutdown';
  3810. function lineSwapHold; external TapiDll name 'lineSwapHold';
  3811. function lineTranslateAddress; external TapiDll name 'lineTranslateAddress';
  3812. function lineTranslateDialog; external TapiDll name 'lineTranslateDialog';
  3813. function lineUncompleteCall; external TapiDll name 'lineUncompleteCall';
  3814. function lineUnhold; external TapiDll name 'lineUnhold';
  3815. function lineUnpark; external TapiDll name 'lineUnpark';
  3816. function phoneClose; external TapiDll name 'phoneClose';
  3817. function phoneConfigDialog; external TapiDll name 'phoneConfigDialog';
  3818. function phoneDevSpecific; external TapiDll name 'phoneDevSpecific';
  3819. function phoneGetButtonInfo; external TapiDll name 'phoneGetButtonInfo';
  3820. function phoneGetData; external TapiDll name 'phoneGetData';
  3821. function phoneGetDevCaps; external TapiDll name 'phoneGetDevCaps';
  3822. function phoneGetDisplay; external TapiDll name 'phoneGetDisplay';
  3823. function phoneGetGain; external TapiDll name 'phoneGetGain';
  3824. function phoneGetHookSwitch; external TapiDll name 'phoneGetHookSwitch';
  3825. function phoneGetIcon; external TapiDll name 'phoneGetIcon';
  3826. function phoneGetID; external TapiDll name 'phoneGetID';
  3827. function phoneGetLamp; external TapiDll name 'phoneGetLamp';
  3828. {$IFDEF Tapi_Ver20}
  3829. function phoneGetMessage; external TapiDll name 'phoneGetMessage';
  3830. {$ENDIF}
  3831. function phoneGetRing; external TapiDll name 'phoneGetRing';
  3832. function phoneGetStatus; external TapiDll name 'phoneGetStatus';
  3833. function phoneGetStatusMessages; external TapiDll name 'phoneGetStatusMessages';
  3834. function phoneGetVolume; external TapiDll name 'phoneGetVolume';
  3835. function phoneInitialize; external TapiDll name 'phoneInitialize';
  3836. {$IFDEF Tapi_Ver20}
  3837. function phoneInitializeEx; external TapiDll name 'phoneInitializeEx';
  3838. {$ENDIF}
  3839. function phoneNegotiateAPIVersion; external TapiDll name 'phoneNegotiateAPIVersion';
  3840. function phoneNegotiateExtVersion; external TapiDll name 'phoneNegotiateExtVersion';
  3841. function phoneOpen; external TapiDll name 'phoneOpen';
  3842. function phoneSetButtonInfo; external TapiDll name 'phoneSetButtonInfo';
  3843. function phoneSetData; external TapiDll name 'phoneSetData';
  3844. function phoneSetDisplay; external TapiDll name 'phoneSetDisplay';
  3845. function phoneSetGain; external TapiDll name 'phoneSetGain';
  3846. function phoneSetHookSwitch; external TapiDll name 'phoneSetHookSwitch';
  3847. function phoneSetLamp; external TapiDll name 'phoneSetLamp';
  3848. function phoneSetRing; external TapiDll name 'phoneSetRing';
  3849. function phoneSetStatusMessages; external TapiDll name 'phoneSetStatusMessages';
  3850. function phoneSetVolume; external TapiDll name 'phoneSetVolume';
  3851. function phoneShutdown; external TapiDll name 'phoneShutdown';
  3852. function tapiGetLocationInfo; external TapiDll name 'tapiGetLocationInfo';
  3853. function tapiRequestDrop; external TapiDll name 'tapiRequestDrop';
  3854. function tapiRequestMakeCall; external TapiDll name 'tapiRequestMakeCall';
  3855. function tapiRequestMediaCall; external TapiDll name 'tapiRequestMediaCall';
  3856.  
  3857. {$IFDEF Win32}
  3858. function lineAddProviderA; external TapiDll name 'lineAddProvider';
  3859. function lineAddProviderW; external TapiDll name 'lineAddProviderW';
  3860. function lineBlindTransferA; external TapiDll name 'lineBlindTransfer';
  3861. function lineBlindTransferW; external TapiDll name 'lineBlindTransferW';
  3862. function lineConfigDialogA; external TapiDll name 'lineConfigDialog';
  3863. function lineConfigDialogW; external TapiDll name 'lineConfigDialogW';
  3864. function lineConfigDialogEditA; external TapiDll name 'lineConfigDialogEdit';
  3865. function lineConfigDialogEditW; external TapiDll name 'lineConfigDialogEditW';
  3866. function lineDialA; external TapiDll name 'lineDial';
  3867. function lineDialW; external TapiDll name 'lineDialW';
  3868. function lineForwardA; external TapiDll name 'lineForward';
  3869. function lineForwardW; external TapiDll name 'lineForwardW';
  3870. function lineGatherDigitsA; external TapiDll name 'lineGatherDigits';
  3871. function lineGatherDigitsW; external TapiDll name 'lineGatherDigitsW';
  3872. function lineGenerateDigitsA; external TapiDll name 'lineGenerateDigits';
  3873. function lineGenerateDigitsW; external TapiDll name 'lineGenerateDigitsW';
  3874. function lineGetAddressCapsA; external TapiDll name 'lineGetAddressCaps';
  3875. function lineGetAddressCapsW; external TapiDll name 'lineGetAddressCapsW';
  3876. function lineGetAddressIDA; external TapiDll name 'lineGetAddressID';
  3877. function lineGetAddressIDW; external TapiDll name 'lineGetAddressIDW';
  3878. function lineGetAddressStatusA; external TapiDll name 'lineGetAddressStatus';
  3879. function lineGetAddressStatusW; external TapiDll name 'lineGetAddressStatusW';
  3880. function lineGetAgentActivityListA; external TapiDll name 'lineGetAgentActivityList';
  3881. function lineGetAgentActivityListW; external TapiDll name 'lineGetAgentActivityListW';
  3882. function lineGetAgentCapsA; external TapiDll name 'lineGetAgentCaps';
  3883. function lineGetAgentCapsW; external TapiDll name 'lineGetAgentCapsW';
  3884. function lineGetAgentGroupListA; external TapiDll name 'lineGetAgentGroupList';
  3885. function lineGetAgentGroupListW; external TapiDll name 'lineGetAgentGroupListW';
  3886. function lineGetAgentStatusA; external TapiDll name 'lineGetAgentStatus';
  3887. function lineGetAgentStatusW; external TapiDll name 'lineGetAgentStatusW';
  3888. function lineGetAppPriorityA; external TapiDll name 'lineGetAppPriority';
  3889. function lineGetAppPriorityW; external TapiDll name 'lineGetAppPriorityW';
  3890. function lineGetCallInfoA; external TapiDll name 'lineGetCallInfo';
  3891. function lineGetCallInfoW; external TapiDll name 'lineGetCallInfoW';
  3892. function lineGetCountryA; external TapiDll name 'lineGetCountry';
  3893. function lineGetCountryW; external TapiDll name 'lineGetCountryW';
  3894. function lineGetDevCapsA; external TapiDll name 'lineGetDevCaps';
  3895. function lineGetDevCapsW; external TapiDll name 'lineGetDevCapsW';
  3896. function lineGetDevConfigA; external TapiDll name 'lineGetDevConfig';
  3897. function lineGetDevConfigW; external TapiDll name 'lineGetDevConfigW';
  3898. function lineGetIconA; external TapiDll name 'lineGetIcon';
  3899. function lineGetIconW; external TapiDll name 'lineGetIconW';
  3900. function lineGetIDA; external TapiDll name 'lineGetID';
  3901. function lineGetIDW; external TapiDll name 'lineGetIDW';
  3902. function lineGetLineDevStatusA; external TapiDll name 'lineGetLineDevStatus';
  3903. function lineGetLineDevStatusW; external TapiDll name 'lineGetLineDevStatusW';
  3904. function lineGetProviderListA; external TapiDll name 'lineGetProviderList';
  3905. function lineGetProviderListW; external TapiDll name 'lineGetProviderListW';
  3906. function lineGetRequestA; external TapiDll name 'lineGetRequest';
  3907. function lineGetRequestW; external TapiDll name 'lineGetRequestW';
  3908. function lineGetTranslateCapsA; external TapiDll name 'lineGetTranslateCaps';
  3909. function lineGetTranslateCapsW; external TapiDll name 'lineGetTranslateCapsW';
  3910. function lineHandoffA; external TapiDll name 'lineHandoff';
  3911. function lineHandoffW; external TapiDll name 'lineHandoffW';
  3912. {$IFDEF Tapi_Ver20}
  3913. function lineInitializeExA; external TapiDll name 'lineInitializeEx';
  3914. function lineInitializeExW; external TapiDll name 'lineInitializeExW';
  3915. {$ENDIF}
  3916. function lineMakeCallA; external TapiDll name 'lineMakeCall';
  3917. function lineMakeCallW; external TapiDll name 'lineMakeCallW';
  3918. function lineOpenA; external TapiDll name 'lineOpen';
  3919. function lineOpenW; external TapiDll name 'lineOpenW';
  3920. function lineParkA; external TapiDll name 'linePark';
  3921. function lineParkW; external TapiDll name 'lineParkW';
  3922. function linePickupA; external TapiDll name 'linePickup';
  3923. function linePickupW; external TapiDll name 'linePickupW';
  3924. function linePrepareAddToConferenceA; external TapiDll name 'linePrepareAddToConference';
  3925. function linePrepareAddToConferenceW; external TapiDll name 'linePrepareAddToConferenceW';
  3926. function lineRedirectA; external TapiDll name 'lineRedirect';
  3927. function lineRedirectW; external TapiDll name 'lineRedirectW';
  3928. function lineSetAppPriorityA; external TapiDll name 'lineSetAppPriority';
  3929. function lineSetAppPriorityW; external TapiDll name 'lineSetAppPriorityW';
  3930. function lineSetDevConfigA; external TapiDll name 'lineSetDevConfig';
  3931. function lineSetDevConfigW; external TapiDll name 'lineSetDevConfigW';
  3932. function lineSetTollListA; external TapiDll name 'lineSetTollList';
  3933. function lineSetTollListW; external TapiDll name 'lineSetTollListW';
  3934. function lineSetupConferenceA; external TapiDll name 'lineSetupConference';
  3935. function lineSetupConferenceW; external TapiDll name 'lineSetupConferenceW';
  3936. function lineSetupTransferA; external TapiDll name 'lineSetupTransfer';
  3937. function lineSetupTransferW; external TapiDll name 'lineSetupTransferW';
  3938. function lineTranslateAddressA; external TapiDll name 'lineTranslateAddress';
  3939. function lineTranslateAddressW; external TapiDll name 'lineTranslateAddressW';
  3940. function lineTranslateDialogA; external TapiDll name 'lineTranslateDialog';
  3941. function lineTranslateDialogW; external TapiDll name 'lineTranslateDialogW';
  3942. function lineUnparkA; external TapiDll name 'lineUnpark';
  3943. function lineUnparkW; external TapiDll name 'lineUnparkW';
  3944. function phoneConfigDialogA; external TapiDll name 'phoneConfigDialog';
  3945. function phoneConfigDialogW; external TapiDll name 'phoneConfigDialogW';
  3946. function phoneGetButtonInfoA; external TapiDll name 'phoneGetButtonInfo';
  3947. function phoneGetButtonInfoW; external TapiDll name 'phoneGetButtonInfoW';
  3948. function phoneGetDevCapsA; external TapiDll name 'phoneGetDevCaps';
  3949. function phoneGetDevCapsW; external TapiDll name 'phoneGetDevCapsW';
  3950. function phoneGetIconA; external TapiDll name 'phoneGetIcon';
  3951. function phoneGetIconW; external TapiDll name 'phoneGetIconW';
  3952. function phoneGetIDA; external TapiDll name 'phoneGetID';
  3953. function phoneGetIDW; external TapiDll name 'phoneGetIDW';
  3954. function phoneGetStatusA; external TapiDll name 'phoneGetStatus';
  3955. function phoneGetStatusW; external TapiDll name 'phoneGetStatusW';
  3956. {$IFDEF Tapi_Ver20}
  3957. function phoneInitializeExA; external TapiDll name 'phoneInitializeEx';
  3958. function phoneInitializeExW; external TapiDll name 'phoneInitializeExW';
  3959. {$ENDIF}
  3960. function phoneSetButtonInfoA; external TapiDll name 'phoneSetButtonInfo';
  3961. function phoneSetButtonInfoW; external TapiDll name 'phoneSetButtonInfoW';
  3962. function tapiGetLocationInfoA; external TapiDll name 'tapiGetLocationInfo';
  3963. function tapiGetLocationInfoW; external TapiDll name 'tapiGetLocationInfoW';
  3964. function tapiRequestMakeCallA; external TapiDll name 'tapiRequestMakeCall';
  3965. function tapiRequestMakeCallW; external TapiDll name 'tapiRequestMakeCallW';
  3966. function tapiRequestMediaCallA; external TapiDll name 'tapiRequestMediaCall';
  3967. function tapiRequestMediaCallW; external TapiDll name 'tapiRequestMediaCallW';
  3968. {$ENDIF}
  3969.  
  3970. function TAPIERROR_FORMATMESSAGE (ErrCode : INT) : INT;
  3971. begin
  3972.   if ErrCode > $FFFF0000 then
  3973.     Result:=ErrCode and $FFFF
  3974.   else if ErrCode and $10000000 <> 0 then
  3975.     Result:=ErrCode - $90000000 + $F000
  3976.   else
  3977.     Result:=ErrCode - $80000000 + $F000
  3978. end;
  3979.  
  3980. function TapiError (ResultCode : Integer) : Boolean;
  3981. begin
  3982.   Result:=ResultCode < 0;
  3983. end;
  3984.  
  3985. procedure TapiCheck (ResultCode : Integer);
  3986. var
  3987.   S : string;
  3988. begin
  3989.   if TapiError(ResultCode) then
  3990.     begin
  3991.       ResultCode:=TAPIERROR_FORMATMESSAGE(ResultCode);
  3992.       S:=SysErrorMessage(ResultCode);
  3993.       if S = '' then
  3994.         S:='Error ' + IntToStr(ResultCode);
  3995.       raise Exception.Create('TAPI error: ' + S);
  3996.     end;
  3997. end;
  3998.  
  3999. end.
  4000.  
  4001.